home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / ien / ien-187 < prev    next >
Text File  |  1988-12-01  |  127KB  |  4,197 lines

  1.  
  2.                                                           IEN 187
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.                      ISSUES IN INTERNETTING
  22.  
  23.                  PART 2:  ACCESSING THE INTERNET
  24.  
  25.  
  26.                           Eric C. Rosen
  27.  
  28.  
  29.                   Bolt Beranek and Newman Inc.
  30.  
  31.  
  32.                             June 1981
  33.  
  34. IEN 187                              Bolt Beranek and Newman Inc.
  35.                                                     Eric C. Rosen
  36.  
  37.  
  38.                      ISSUES IN INTERNETTING
  39.  
  40.                  PART 2:  ACCESSING THE INTERNET
  41.  
  42.  
  43. 2.  Accessing the Internet
  44.  
  45.  
  46.  
  47.      This is the second in a series of papers, the first of which
  48.  
  49. was IEN 184, that examine some of  the  issues  in  designing  an
  50.  
  51. internet.    Familiarity  with  IEN  184  is  presupposed.   This
  52.  
  53. particular paper will deal with the issues involved in the design
  54.  
  55. of  internet  access  protocols  and  software.   The  issue   of
  56.  
  57. addressing, however, is left until the next paper in this series.
  58.  
  59. Part of our technique for exposing and organizing the issues will
  60.  
  61. be to criticize (sometimes rather severely) the current protocols
  62.  
  63. and  procedures  of  the  Catenet,  even though we do not, at the
  64.  
  65. present time, offer specific alternatives in all cases.
  66.  
  67.  
  68.      In IEN 184, section 1.4,  we  outlined  four  steps  in  the
  69.  
  70. operation  of a Network Structure.  Let's now look closely at the
  71.  
  72. first step, viz., how the source Host actually submits a  message
  73.  
  74. to  the source Switch.  In general, a Host will need to run three
  75.  
  76. separate protocols to do this:
  77.  
  78.  
  79.     -a protocol to utilize the electrical interface  between  the
  80.  
  81.      Host  and  the  initial  component of the Pathway it uses to
  82.  
  83.      access the source Switch.
  84.  
  85.  
  86.  
  87.  
  88.  
  89.                               - 1 -
  90.  
  91. IEN 187                              Bolt Beranek and Newman Inc.
  92.                                                     Eric C. Rosen
  93.  
  94.  
  95.     -a protocol to govern communication between the Host and  the
  96.  
  97.      Pathway (PATHWAY ACCESS PROTOCOL).
  98.  
  99.  
  100.     -a protocol to govern communication between the Host and  the
  101.  
  102.      source Switch (NETWORK ACCESS PROTOCOL).
  103.  
  104.  
  105.      We  can  make  this  point  more  concrete  by  giving  some
  106.  
  107. examples.  Consider the case of an ARPANET host  which  wants  to
  108.  
  109. access  the  Catenet via the BBN gateway (which is also a Host on
  110.  
  111. the ARPANET).  Then the ARPANET is the Pathway the host  uses  to
  112.  
  113. access  the  source Switch (the gateway).  If the host is a local
  114.  
  115. or distant host, the electrical interface to the Pathway  is  the
  116.  
  117. 1822  hardware  interface.   If  it is a VDH host, the electrical
  118.  
  119. interface is whatever protocol governs the use of the pins on the
  120.  
  121. modem connectors.  If it were an X.25 host, the  interface  might
  122.  
  123. be X.21.  The PATHWAY ACCESS PROTOCOL is the 1822 protocol, which
  124.  
  125. governs  communication  between the host and the first IMP on the
  126.  
  127. Pathway.  The NETWORK ACCESS PROTOCOL in this case would  be  the
  128.  
  129. DoD  standard Internet Protocol (IP), which governs communication
  130.  
  131. between the host and the source Switch (gateway).
  132.  
  133.  
  134.      If, on the other hand, we consider the case  of  an  ARPANET
  135.  
  136. host which is communicating with another host on the ARPANET, and
  137.  
  138. whose data stays purely within the ARPANET, 1822 becomes both the
  139.  
  140. NETWORK ACCESS PROTOCOL (since the source Switch is now identical
  141.  
  142. to  the  source  IMP), and the PATHWAY ACCESS PROTOCOL, since the
  143.  
  144. Pathway is now the 1822 hardware connection.
  145.  
  146.                               - 2 -
  147.  
  148. IEN 187                              Bolt Beranek and Newman Inc.
  149.                                                     Eric C. Rosen
  150.  
  151.  
  152.      We will have nothing further to  say  about  the  electrical
  153.  
  154. interface,  since  that is really just a straightforward hardware
  155.  
  156. matter.   (However,  such  characteristics  of   the   electrical
  157.  
  158. interface  as error rate, for example, might have to be reflected
  159.  
  160. in the design of the Pathway Access  Protocol.)   The  design  of
  161.  
  162. both  the Pathway Access Protocol and the Network Access Protocol
  163.  
  164. do raise a large number of interesting issues, and that shall  be
  165.  
  166. the focus of this paper.
  167.  
  168.  
  169.      We  believe  it  to  be very unlikely that Host software (or
  170.  
  171. gateway software) can utilize the internet efficiently unless  it
  172.  
  173. takes  the idiosyncrasies of BOTH the Pathway Access Protocol and
  174.  
  175. the Network Access Protocol into  account.   A  gateway  or  host
  176.  
  177. software  implementer  who  spends a great deal of time carefully
  178.  
  179. building his IP module, but who then writes a "quick  and  dirty"
  180.  
  181. 1822  module,  is likely to find that his inefficient use of 1822
  182.  
  183. completely sabotages the advantages which his carefully  designed
  184.  
  185. IP  is  supposed  to have.  Experience with the ARPANET has shown
  186.  
  187. many times that  poorly  constructed  host  software  can  create
  188.  
  189. unnecessary  performance  problems.   It seems, for example, that
  190.  
  191. many 1822 modules completely ignore the flow control restrictions
  192.  
  193. of the ARPANET, thereby  significantly  reducing  the  throughput
  194.  
  195. that  they can obtain over the ARPANET.  We have even encountered
  196.  
  197. many hosts which cannot  properly  handle  some  of  the  control
  198.  
  199. messages  of  the  1822  protocol,  which  also  leads  to a very
  200.  
  201. inefficient use of the ARPANET.
  202.  
  203.                               - 3 -
  204.  
  205. IEN 187                              Bolt Beranek and Newman Inc.
  206.                                                     Eric C. Rosen
  207.  
  208.  
  209.      It is not difficult to understand why a  host  (or  gateway)
  210.  
  211. software  implementer might overlook the issues having to do with
  212.  
  213. the proper use of the  Pathway  Access  Protocol.   There  are  a
  214.  
  215. number  of  pressures  that,  if  not  dealt  with  properly at a
  216.  
  217. management level, lead naturally to the neglect of Pathway Access
  218.  
  219. Protocol  issues.   An  internet  implementer   might   want   to
  220.  
  221. concentrate   on  the  "new  stuff",  viz.,  the  Network  Access
  222.  
  223. Protocol,  IP,  and  may  not  be  at  all  interested   in   the
  224.  
  225. idiosyncrasies  of  the older Pathway Access Protocol (1822).  He
  226.  
  227. might be misled, by the belief that the packet-switching networks
  228.  
  229. underlying  the  internet  should  be  transparent  to  it,  into
  230.  
  231. believing  that those packet-switching networks can be treated as
  232.  
  233. simply as if they were circuits.  He might also be under pressure
  234.  
  235. to implement as quickly as possible the  necessary  functionality
  236.  
  237. to  allow  internet  access.  While this sort of pressure is very
  238.  
  239. common, the pressure  to  make  the  internet  PERFORM  well  (as
  240.  
  241. opposed  to  the  pressure  simply  to  make  it  work at all) is
  242.  
  243. generally not felt  until  much  (sometimes  years)  later.   The
  244.  
  245. tendency  to  neglect performance considerations while giving too
  246.  
  247. much attention to simply obtaining the  needed  functionality  in
  248.  
  249. the  quickest  way  is  also  reinforced  by such "modern" design
  250.  
  251. procedures as top-down design, and specification of protocols  in
  252.  
  253. formal  languages.  While these procedures do have a large number
  254.  
  255. of advantages, they also serve to obscure performance issues.  If
  256.  
  257. the researchers and  designers  of  protocols,  following  modern
  258.  
  259.  
  260.                               - 4 -
  261.  
  262. IEN 187                              Bolt Beranek and Newman Inc.
  263.                                                     Eric C. Rosen
  264.  
  265.  
  266. design  methodologies,  do  not  give  adequate  consideration to
  267.  
  268. performance at the time of protocol design, one can hardly expect
  269.  
  270. the implementers to do so.   Yet  ARPANET  experience  has  shown
  271.  
  272. again   and   again   that   decisions   made  at  the  level  of
  273.  
  274. implementation, apparently too picayune to catch the attention of
  275.  
  276. the designers, can  be  important  determinants  of  performance.
  277.  
  278. Still  another  reason  why  protocol software implementers might
  279.  
  280. tend to disregard the niceties of the Pathway Access Protocol  is
  281.  
  282. the   lack   of  any  adequate  protocol  software  certification
  283.  
  284. procedure.  An ARPANET host could be  connected  to  an  IMP  for
  285.  
  286. months,  transferring  large  amounts  of  traffic,  without ever
  287.  
  288. receiving certain 1822  control  messages.   Then  some  sort  of
  289.  
  290. change  in  network conditions could suddenly cause it to receive
  291.  
  292. that control message once per hour.  There really is  no  way  at
  293.  
  294. present  that  the  implementer  could have possibly run tests to
  295.  
  296. ensure that his software would continue to perform well under the
  297.  
  298. new circumstances.  This problem is somewhat  orthogonal  to  our
  299.  
  300. main interests, but deserves notice.
  301.  
  302.  
  303.      One  of  the  most  important  reasons why protocol software
  304.  
  305. implementers tend to ignore the details  of  the  Pathway  Access
  306.  
  307. Protocols  is  the  "philosophical" belief that anyone working on
  308.  
  309. internet software really "ought not" to have to worry  about  the
  310.  
  311. details  of  the  underlying  networks.   We  will not attempt to
  312.  
  313. refute this view, any more than we would attempt  to  refute  the
  314.  
  315. view  of  a person who claimed that it "ought not" to rain on his
  316.  
  317.                               - 5 -
  318.  
  319. IEN 187                              Bolt Beranek and Newman Inc.
  320.                                                     Eric C. Rosen
  321.  
  322.  
  323. day off.  We emphasized in IEN 184 that the characteristics of  a
  324.  
  325. Network  Structure's Pathways are the main thing that distinguish
  326.  
  327. one Network Structure from another,  and  that  the  problems  of
  328.  
  329. internetting  really  are  just  the  problems  of how to build a
  330.  
  331. Network   Structure   with    Pathways    as    ill-behaved    as
  332.  
  333. packet-switching  networks.   Thus building a successful internet
  334.  
  335. would seem to be  a  matter  of  dealing  specifically  with  the
  336.  
  337. behavior  of  the  various  Pathways,  rather  than ignoring that
  338.  
  339. behavior.  We assume that that our task is to create an  internet
  340.  
  341. which  is robust and which performs well, as opposed to one which
  342.  
  343. "ought to" perform well but does not.  It is  true,  as  we  have
  344.  
  345. said,  that  within the Network Structure of the Catenet, we want
  346.  
  347. to regard the ARPANET as a Pathway whose internal structure we do
  348.  
  349. not have to deal with, but that does  NOT  mean  that  we  should
  350.  
  351. regard  it  as a circuit.  Any internet Host or Switch (gateway),
  352.  
  353. TO PERFORM WELL, will have to have a carefully designed and tuned
  354.  
  355. Pathway Access Protocol module geared to the  characteristics  of
  356.  
  357. the Pathway that it accesses.
  358.  
  359.  
  360.      The relationship between the Pathway Access Protocol and the
  361.  
  362. Network  Access  Protocol  does  offer  a  number  of interesting
  363.  
  364. problems.  For one thing, it appears that these protocols do  not
  365.  
  366. fit  easily into the OSI Open Systems model.  If we are accessing
  367.  
  368. a single packet-switching network, the  Network  Access  Protocol
  369.  
  370. appears  to  be  a  level  3  protocol  in the OSI model, and the
  371.  
  372. Pathway Access  Protocol  appears  to  be  a  level  2  protocol.
  373.  
  374.                               - 6 -
  375.  
  376. IEN 187                              Bolt Beranek and Newman Inc.
  377.                                                     Eric C. Rosen
  378.  
  379.  
  380. However, if we are accessing an internet, we still need the level
  381.  
  382. 3  Network  Access  Protocol, but now the Pathway Access Protocol
  383.  
  384. also has a  level  3  component,  in  addition  to  its  level  2
  385.  
  386. component.   So  the  Host  is  now running two different level 3
  387.  
  388. protocols,  although  the   Network   Access   Protocol   appears
  389.  
  390. functionally  to  be  in  a layer "above" the level 3 part of the
  391.  
  392. Pathway Access Protocol.  Perhaps the main problem here  is  that
  393.  
  394. the   OSI  model  has  insufficient  generality  to  capture  the
  395.  
  396. structure of the protocols needed to access an internet like  the
  397.  
  398. Catenet.
  399.  
  400.  
  401.      It  is  interesting  to see how some of these considerations
  402.  
  403. generalize to the case  of  a  Host  which  needs  to  access  an
  404.  
  405. internet  (call  it  "B")  through  a  Pathway which is itself an
  406.  
  407. internet (call it "A").  Then the Host  needs  a  Network  Access
  408.  
  409. Protocol  for  the  internet B, a Network Access Protocol for the
  410.  
  411. internet A  (which  is  also  its  Pathway  Access  Protocol  for
  412.  
  413. internet B), and a Network Access Protocol for the actual network
  414.  
  415. to  which  it  is  directly  connected, which is also its Pathway
  416.  
  417. Access Protocol for internet A.   As  we  create  more  and  more
  418.  
  419. complicated  Network  Structures,  with internets piled on top of
  420.  
  421. internets, the Hosts will have a  greater  and  greater  protocol
  422.  
  423. burden  placed  upon  them.  Ultimately, we might want to finesse
  424.  
  425. this problem by removing most of this burden from the  Hosts  and
  426.  
  427. putting  it in the Switches, and giving the Switches knowledge of
  428.  
  429. the hierarchical nature of the (internet) Network Structure.  For
  430.  
  431.                               - 7 -
  432.  
  433. IEN 187                              Bolt Beranek and Newman Inc.
  434.                                                     Eric C. Rosen
  435.  
  436.  
  437. example, a Host on the ARPANET might just want to give  its  data
  438.  
  439. to  some  IMP to which it is directly connected, without worrying
  440.  
  441. at all about whether that data will need to leave the ARPANET and
  442.  
  443. travel via an internet.  The IMP could  decide  whether  that  is
  444.  
  445. necessary, and if so, execute the appropriate protocol to get the
  446.  
  447. data  to  some  internet  Switch  at  the  next  highest level of
  448.  
  449. hierarchy.  If the data cannot reach its destination  within  the
  450.  
  451. internet  at  that  level, but rather has to go up further in the
  452.  
  453. hierarchy to another internet, the  Switch  at  the  lower  level
  454.  
  455. could  make  that  decision and execute the appropriate protocol.
  456.  
  457. With a protocol structure like this, we could have an arbitrarily
  458.  
  459. nested internet, and the Switches at a particular level, as  well
  460.  
  461. as  the Hosts (which are at the lowest level), would only have to
  462.  
  463. know how to access the levels of hierarchy which are  immediately
  464.  
  465. above and/or below them.  This procedure would also make the host
  466.  
  467. software  conform  more  to the OSI model, since only one Network
  468.  
  469. Access  Protocol  would  be  required.   However,  this  sort  of
  470.  
  471. protocol structure, convenient as it might be for the Hosts, does
  472.  
  473. not eliminate any of the issues about how to most efficiently use
  474.  
  475. the  Pathways  of  a  Network  Structure.  Rather, it just pushes
  476.  
  477. those issues up one level, and makes the Switches correspondingly
  478.  
  479. more  complicated.   A  proper  understanding  of   the   issues,
  480.  
  481. therefore, is independent of what sort of protocol structuring we
  482.  
  483. design.
  484.  
  485.  
  486.  
  487.  
  488.                               - 8 -
  489.  
  490. IEN 187                              Bolt Beranek and Newman Inc.
  491.                                                     Eric C. Rosen
  492.  
  493.  
  494.      Having  emphasized  the  need for hosts and gateways to take
  495.  
  496. account of the details of particular Pathway Access Protocols, we
  497.  
  498. must point out that this is not always a simple thing to do.   If
  499.  
  500. the  Network  Structure  underlying  a  Pathway  is just a single
  501.  
  502. network, like the  ARPANET,  this  problem  is  not  so  terribly
  503.  
  504. difficult,  since  one  can expect that there will be available a
  505.  
  506. lot of experience and information about what a host should do  to
  507.  
  508. access  that  network  efficiently.   If,  on the other hand, the
  509.  
  510. Pathway is  really  an  internet  itself,  the  problem  is  more
  511.  
  512. difficult,  since  it  is  much  more  difficult  to say anything
  513.  
  514. substantive about its characteristics.  This is a point  we  must
  515.  
  516. keep  in  mind  as  we discuss specific issues in access protocol
  517.  
  518. design.
  519.  
  520.  
  521.      In the remainder of this paper, we will attempt to deal with
  522.  
  523. a  number  of  issues  involved  in   the   design   of   robust,
  524.  
  525. high-performance  Network  and Pathway Access Protocols.  We will
  526.  
  527. not attempt to cover every possible issue here.   In  particular,
  528.  
  529. the  issue of how to do addressing is important enough to warrant
  530.  
  531. a paper of its own, and shall be put off until the next paper  in
  532.  
  533. this series.  We will attempt throughout to focus on issues which
  534.  
  535. particularly affect the reliability of the internet configuration
  536.  
  537. (as  perceived  by  the  users),  and  on issues which affect the
  538.  
  539. performance  of  the  internet  (as  perceived  by  the   users).
  540.  
  541. Wherever  possible,  we  will try to exhibit the way in which the
  542.  
  543. reliability and performance of a protocol trade off  against  its
  544.  
  545.                               - 9 -
  546.  
  547. IEN 187                              Bolt Beranek and Newman Inc.
  548.                                                     Eric C. Rosen
  549.  
  550.  
  551. functionality.   If protocol designers concentrate too heavily on
  552.  
  553. questions of what functionality is desired, as  opposed  to  what
  554.  
  555. functionality   can   be   provided  at  a  reasonable  level  of
  556.  
  557. performance and reliability, they are likely to find out too late
  558.  
  559. that  the  protocol  gives  neither  reasonable  performance  nor
  560.  
  561. reliability.
  562.  
  563.  
  564. 2.1  Pathway Up/Down Considerations
  565.  
  566.  
  567.      In  general,  a  Host  will be multi-homed to some number of
  568.  
  569. Switches.  In fact, it is easy to imagine a Host  which  is  both
  570.  
  571. (a) multi-homed to a number of IMPs, within the Network Structure
  572.  
  573. of  the  ARPANET  (this cannot be done at present, but is planned
  574.  
  575. for the future), and also (b) multi-homed to a number of gateways
  576.  
  577. (namely, all the gateways on  the  ARPANET)  within  the  Network
  578.  
  579. Structure  of  the  Catenet.  Whenever a Host is multi-homed to a
  580.  
  581. number of Switches in some Network Structure, it has  a  decision
  582.  
  583. to  make,  namely,  which  of those Switches to use as the source
  584.  
  585. Switch for some particular data traffic.  In order to  make  this
  586.  
  587. choice,  the  very  first  step  a  Host  will have to take is to
  588.  
  589. determine  which  Switches  it  can  reach  through   operational
  590.  
  591. Pathways.  One thing we can say for sure is that if a Host cannot
  592.  
  593. reach  a  particular Switch through any of its possible Pathways,
  594.  
  595. then it ought not to pick that Switch as  the  source  Switch  to
  596.  
  597. which  to  send  its  data.   In  a  case, for example, where the
  598.  
  599. ARPANET is partitioned, a Host on the ARPANET which needs to send
  600.  
  601.  
  602.                              - 10 -
  603.  
  604. IEN 187                              Bolt Beranek and Newman Inc.
  605.                                                     Eric C. Rosen
  606.  
  607.  
  608. internet traffic will want to know which gateways  it  can  reach
  609.  
  610. through   which   of   its  ARPANET  interfaces.   To  make  this
  611.  
  612. determination possible, there  must  be  some  sort  of  "Pathway
  613.  
  614. Up/Down  Protocol",  by  which  the  Host determines which of its
  615.  
  616. potential Pathways to gateways are up and which are  down.   This
  617.  
  618. is  not  to  say,  of  course,  that the Hosts have to know which
  619.  
  620. gateways are up and which are down, but rather,  they  must  know
  621.  
  622. which  gateways  they  can  and  cannot  reach.   Of course, this
  623.  
  624. situation  is  quite  symmetric.   The  Switches  of  a   Network
  625.  
  626. Structure  (and  in particular, the gateways of an internet) must
  627.  
  628. be  able  to  determine  whether  or  not  they  can  reach  some
  629.  
  630. particular  host at some particular time.  Otherwise, the gateway
  631.  
  632. might send traffic for a certain Host over a network access  line
  633.  
  634. through  which  there  is  no  path to that Host, thereby causing
  635.  
  636. unnecessary data loss.  Apparently,  this  problem  has  occurred
  637.  
  638. with  some  frequency in the Catenet; it seems worthwhile to give
  639.  
  640. it some systematic consideration.
  641.  
  642.  
  643.      The design of reliable Pathway Up/down protocols seems  like
  644.  
  645. something  that  "ought  to be" trivial, but in fact can be quite
  646.  
  647. difficult.  Let's begin by considering the  case  of  an  ARPANET
  648.  
  649. host  which  simply  wants to determine whether it can reach some
  650.  
  651. IMP to which it is directly connected.  The first  step  for  the
  652.  
  653. host to take (if it is a local or distant host) is to look at the
  654.  
  655. status  of  its Ready Line.  If the Ready Line to some IMP is not
  656.  
  657. up, then it is certain that communication with that  IMP  is  not
  658.  
  659.                              - 11 -
  660.  
  661. IEN 187                              Bolt Beranek and Newman Inc.
  662.                                                     Eric C. Rosen
  663.  
  664.  
  665. possible.   If  the  host  is a VDH host, then there is a special
  666.  
  667. up/down protocol that the host must participate in with the  IMP,
  668.  
  669. and if that fails, the host knows that it cannot communicate with
  670.  
  671. the  IMP.  Of course, these situations are symmetric, in that the
  672.  
  673. IMP has the same need to know whether it can communicate  with  a
  674.  
  675. host,  and  must  follow the same procedures to determine whether
  676.  
  677. this is the case.  However, even  in  these  very  simple  cases,
  678.  
  679. problems  are  possible.   For  example,  someone  may  decide to
  680.  
  681. interface a host to an IMP via a "clever" front-end  which  hides
  682.  
  683. the  status  of the Ready Line from the host software.  If a host
  684.  
  685. is multi-homed, and has to choose one from among several possible
  686.  
  687. source IMPs, but cannot "see" the Ready Lines, what would stop it
  688.  
  689. from sending messages to a dead IMP?  Eventually,  of  course,  a
  690.  
  691. user would notice that his data is not getting through, and would
  692.  
  693. probably  call  up the ARPANET Network Control Center to complain
  694.  
  695. about  the  unreliability  of  the  network,  which,   from   his
  696.  
  697. perspective, is mysteriously dropping packets.  From the opposite
  698.  
  699. perspective,  one  must  realize that such a front-end might also
  700.  
  701. hide the status of the host from the IMP, so that the network has
  702.  
  703. no way of knowing whether a particular host is currently  capable
  704.  
  705. of  communicating with the network.  This is especially likely to
  706.  
  707. happen if the "clever" front-end takes packets from  the  network
  708.  
  709. which  are  destined  for  a particular host, and then just drops
  710.  
  711. them if the host is down, with no feedback to either IMP or host.
  712.  
  713. If a host is multi-homed, but one of its access  lines  is  down,
  714.  
  715.  
  716.                              - 12 -
  717.  
  718. IEN 187                              Bolt Beranek and Newman Inc.
  719.                                                     Eric C. Rosen
  720.  
  721.  
  722. this  sort of configuration might make it quite difficult for the
  723.  
  724. network to reach a reasonable decision as to which access line to
  725.  
  726. use when sending data to that host.  The lesson,  of  course,  is
  727.  
  728. that the status of the Ready Line should never be hidden from the
  729.  
  730. host  software,  but it is hard to communicate this lesson to the
  731.  
  732. designers  of  host  software.   Again,  the  issue  is  one   of
  733.  
  734. performance  vs.  functionality.  A scheme which hides the status
  735.  
  736. of the Ready Line from IMP or host may still  have  the  required
  737.  
  738. (minimum)  functionality,  but  it will just perform poorly under
  739.  
  740. certain conditions.
  741.  
  742.  
  743.      This may seem like a made-up problem  which  probably  would
  744.  
  745. never  occur,  but in fact it has occurred.  We once had a series
  746.  
  747. of complaints from a user who claimed that at  certain  times  of
  748.  
  749. certain  days  he  had  been unable to transmit data successfully
  750.  
  751. over the ARPANET.  Upon investigation, we found that during those
  752.  
  753. times, the user's local IMP had been powered down, due apparently
  754.  
  755. to a series of local power  failures  at  the  user's  site.   Of
  756.  
  757. course,  the  IMP will not transmit data when it is powered down.
  758.  
  759. But it was somewhat mysterious why we had to inform someone of  a
  760.  
  761. power  failure  at  his  own site; surely the host software could
  762.  
  763. have detected that the IMP was down simply by checking the  Ready
  764.  
  765. Line, and so informed the users.  When this user investigated his
  766.  
  767. own host software (a very old NCP), he found that it would inform
  768.  
  769. the  users  that the IMP was down ONLY if the IMP sent the host a
  770.  
  771. message saying that it was going down.  Since the  IMP  does  not
  772.  
  773.                              - 13 -
  774.  
  775. IEN 187                              Bolt Beranek and Newman Inc.
  776.                                                     Eric C. Rosen
  777.  
  778.  
  779. send  a  message  saying that it is about to lose power, the host
  780.  
  781. software, which apparently did not check  the  Ready  Line  as  a
  782.  
  783. matter  of  course,  did not detect the outage.  It looked to the
  784.  
  785. user, therefore, as though the network had  some  mysterious  and
  786.  
  787. unreliable  way  of dropping packets on the floor.  It seems that
  788.  
  789. many hosts presently exist whose networking software is based  on
  790.  
  791. the  assumption  that  the  IMPs  never  go down without warning.
  792.  
  793. Hosts do sometimes  have  difficulty  determining  whether  their
  794.  
  795. Pathway  to  an  IMP  is up or down, even when it seems like this
  796.  
  797. should be totally trivial to determine.  Reliable network service
  798.  
  799. requires, however, that host software and hardware  designers  do
  800.  
  801. not  hide  the  status of the IMP from the host, or the status of
  802.  
  803. the host from the IMP.  This will become  increasingly  important
  804.  
  805. as more and more hosts become multi-homed.
  806.  
  807.  
  808.      Of  course,  this  is  only a first step in a proper up/down
  809.  
  810. determination.  It is not impossible for a Ready Line  to  be  up
  811.  
  812. but   for   some  problem  either  in  IMP  or  host  to  prevent
  813.  
  814. communications from taking place.  So some higher  level  up/down
  815.  
  816. protocol  is  also necessary.  Some protocol should be defined by
  817.  
  818. which Host and Switch can send traffic to each other, and require
  819.  
  820. the other to respond within a certain time period.  A  series  of
  821.  
  822. failures  to respond would indicate that proper communications is
  823.  
  824. not possible, at least for the time being.  It  is  important  to
  825.  
  826. note,  though,  that the need for a higher level up/down protocol
  827.  
  828. does not obviate the  need  for  the  lower  level  procedure  of
  829.  
  830.                              - 14 -
  831.  
  832. IEN 187                              Bolt Beranek and Newman Inc.
  833.                                                     Eric C. Rosen
  834.  
  835.  
  836. monitoring  the Ready Line.  If the higher level procedure fails,
  837.  
  838. but the Ready Line appears to be up, knowledge of both  facts  is
  839.  
  840. needed   for   proper  fault  isolation  and  maintenance.   Also
  841.  
  842. important  to  notice  is  that  if  the  lower  level  procedure
  843.  
  844. indicates  that  the  Pathway is down, the higher level procedure
  845.  
  846. should not be run.   This  might  not  seem  important  at  first
  847.  
  848. glance,  but  in  practice, it often turns out that attempting to
  849.  
  850. send traffic to a non-responsive machine results  in  significant
  851.  
  852. waste  of resources that could be used for something more useful.
  853.  
  854.  
  855.      In the more general case, where a Host's Pathway to a source
  856.  
  857. Switch may include one or more packet-switching networks,  it  is
  858.  
  859. far  from  trivial to determine whether the Switch can be reached
  860.  
  861. from the Host via the Pathway.   Consider,  for  example,  how  a
  862.  
  863. given  ARPANET  host  could  determine  whether  a  given Catenet
  864.  
  865. gateway on the ARPANET can be accessed  via  some  given  ARPANET
  866.  
  867. source  IMP.   Of  course, the first step is to determine whether
  868.  
  869. communication with that source IMP is possible.  Even if  it  is,
  870.  
  871. however,  the gateway might still be unreachable, since it may be
  872.  
  873. down, or the network may be  partitioned.   ("Officially",  every
  874.  
  875. ARPANET  Host  is supposed to be reachable from any other ARPANET
  876.  
  877. Host.  However, the average connectivity of the ARPANET  is  only
  878.  
  879. 2.5,  which  means  that  only  a  small  number  of line or node
  880.  
  881. failures are needed to induce  partitions.   Furthermore,  a  few
  882.  
  883. ARPANET  sites  are  actually  stubs,  which  means that a single
  884.  
  885. failure can isolate them from the rest of the ARPANET.  As  often
  886.  
  887.                              - 15 -
  888.  
  889. IEN 187                              Bolt Beranek and Newman Inc.
  890.                                                     Eric C. Rosen
  891.  
  892.  
  893. seems  to happen in practice, the sites that are stubs seem to be
  894.  
  895. attached by the least reliable lines, so that partitions are  not
  896.  
  897. infrequent.   At any rate, there will probably be networks in the
  898.  
  899. internet that partition more frequently than  the  ARPANET  does.
  900.  
  901. Internet  protocols  must detect and react to network partitions,
  902.  
  903. instead of simply disregarding them as  "too  unlikely  to  worry
  904.  
  905. about." )
  906.  
  907.  
  908.      In  the special case where the Pathway between some Host and
  909.  
  910. some Switch is  the  ARPANET,  the  ARPANET  itself  can  provide
  911.  
  912. information  to  the  Host  telling  it  whether  the  Switch  is
  913.  
  914. reachable.  If the Switch is not reachable, and a  Host  attempts
  915.  
  916. to  send  an  ordinary data packet to it, the ARPANET will inform
  917.  
  918. the Host whether or not that packet was delivered,  and  if  not,
  919.  
  920. why  not.   Unfortunately,  the  current ARPANET does not provide
  921.  
  922. this information in response  to  datagrams.   However,  we  have
  923.  
  924. already  seen the need to provide such information in the case of
  925.  
  926. logically  addressed  datagrams  (see  IEN  183),  and  plan   to
  927.  
  928. implement  a  scheme for doing so.  An ARPANET Host which is also
  929.  
  930. an internet Host  can  implement  a  low  level  Pathway  up/down
  931.  
  932. protocol  simply  by paying attention to the 1822 replies that it
  933.  
  934. receives from  the  ARPANET.   There  are  hosts  which  seem  to
  935.  
  936. disregard these 1822 control messages, and which seem to continue
  937.  
  938. to  send  messages  for  unreachable  hosts into the ARPANET.  Of
  939.  
  940. course, this is a senseless waste of resources which can severely
  941.  
  942. degrade performance.  Indeed, it may look to an end-user, or even
  943.  
  944.                              - 16 -
  945.  
  946. IEN 187                              Bolt Beranek and Newman Inc.
  947.                                                     Eric C. Rosen
  948.  
  949.  
  950. a gateway implementer, as though the  ARPANET  is  throwing  away
  951.  
  952. packets  for  no  reason,  when the real problem is that the host
  953.  
  954. software cannot  respond  adequately  to  exceptional  conditions
  955.  
  956. reported to it by the network.
  957.  
  958.  
  959.      We  have  spoken  of  the  need for Host and Switch to run a
  960.  
  961. higher level up/down protocol, to take account of the  conditions
  962.  
  963. when  one  of them seems reachable to the network, but still will
  964.  
  965. not  perform  adequately  when   another   entity   attempts   to
  966.  
  967. communicate  with  it.   Switch  and  Host must run some protocol
  968.  
  969. together which enables each to validate the proper performance of
  970.  
  971. the other.  The Catenet Monitoring  and  Control  System  (CMCC),
  972.  
  973. currently  running on ISIE, runs a protocol of this sort with the
  974.  
  975. gateways.  The CMCC sends a special datagram every minute to each
  976.  
  977. gateway, and expects to receive an acknowledgment (or  echo)  for
  978.  
  979. this  special  datagram  back  from  the  gateway.   After  three
  980.  
  981. consecutive minutes of not receiving the echo,  the  CMCC  infers
  982.  
  983. that  the  gateway  cannot  be reached.  After receiving a single
  984.  
  985. echo, the CMCC infers that the gateway can be reached.  (Gateways
  986.  
  987. run a similar protocol with  their  "neighboring  gateways".)   A
  988.  
  989. Pathway  up/down  protocol which does not rely on the intervening
  990.  
  991. network to  furnish  the  information  would  certainly  have  to
  992.  
  993. involve  some  such  exchange of packets between the Host and the
  994.  
  995. Switch, but it would have to be rather  more  complex  than  this
  996.  
  997. one.   One  of  the  problems  with  this  protocol is that it is
  998.  
  999. incapable of detecting outages of less than three minutes.   This
  1000.  
  1001.                              - 17 -
  1002.  
  1003. IEN 187                              Bolt Beranek and Newman Inc.
  1004.                                                     Eric C. Rosen
  1005.  
  1006.  
  1007. may  be  suitable  for  the CMCC's purposes, but is not generally
  1008.  
  1009. suitable for a Host which wants to know which  source  Switch  to
  1010.  
  1011. send  its traffic to.  We would not want some Host to spend three
  1012.  
  1013. full minutes sending data to a Switch which  cannot  be  reached;
  1014.  
  1015. the  effect  of that could be many thousands of bits of data down
  1016.  
  1017. the drain.  (Of course, higher level  protocols  like  TCP  would
  1018.  
  1019. probably  recover  the  lost  data  eventually through the use of
  1020.  
  1021. Host-Host retransmissions, but that involves both a severe  drain
  1022.  
  1023. on  the resources of the Host, which ought to be avoided whenever
  1024.  
  1025. possible, and a severe  degradation  in  delay  and  throughput.)
  1026.  
  1027. Another  problem  with  this  particular protocol is that it uses
  1028.  
  1029. datagrams, which are inherently unreliable, and as a result,  the
  1030.  
  1031. inference  drawn  by  the CMCC is unreliable.  From the fact that
  1032.  
  1033. three datagrams fail to get through, it is quite a  big  jump  to
  1034.  
  1035. infer that no traffic at all can get through.  Another problem is
  1036.  
  1037. the  periodicity  of the test packets.  If they get in phase with
  1038.  
  1039. something else which may be going on  in  the  network,  spurious
  1040.  
  1041. results may be produced.
  1042.  
  1043.  
  1044.      The  design  of  a  Pathway  up/down  protocol  must also be
  1045.  
  1046. sensitive to the fact that some component network  of  a  Pathway
  1047.  
  1048. may be passing only certain types of packets and not others.  For
  1049.  
  1050. example,  at  times  of heavy usage, certain networks may only be
  1051.  
  1052. able to handle packets  of  high  priority,  and  lower  priority
  1053.  
  1054. packets  may either be refused by that net (at its access point),
  1055.  
  1056. or, even worse, discarded internally by the net with no feedback.
  1057.  
  1058.                              - 18 -
  1059.  
  1060. IEN 187                              Bolt Beranek and Newman Inc.
  1061.                                                     Eric C. Rosen
  1062.  
  1063.  
  1064. The Pathway up/down protocol must be sensitive to this, and  will
  1065.  
  1066. have to indicate that the Pathway is only "up" to certain classes
  1067.  
  1068. of  traffic.   If  a  Pathway is really a Network Structure which
  1069.  
  1070. will inform its Hosts  when  it  cannot  accept  certain  traffic
  1071.  
  1072. types,  then  this  information  can be fed back into the up/down
  1073.  
  1074. protocol.  (Note however that this might be very difficult to  do
  1075.  
  1076. if  the  Pathway  consists  of  not  a  single network, but of an
  1077.  
  1078. internet).  Alternatively, a Host may have to rely on its  higher
  1079.  
  1080. level  Pathway up/down protocol to determine, for several classes
  1081.  
  1082. of traffic, whether the Pathway is up to members of  that  class.
  1083.  
  1084. Apart  from  the  inherent  difficulty  of  doing this, it may be
  1085.  
  1086. difficult to map the  traffic  classes  that  a  given  component
  1087.  
  1088. network distinguishes into traffic classes that are meaningful to
  1089.  
  1090. a Host, or even to the Switches of the internet.  Yet we wouldn't
  1091.  
  1092. want  traffic  to  be  sent into a network which is not accepting
  1093.  
  1094. that  particular  kind  of  traffic,  especially  if  there   are
  1095.  
  1096. alternative  Pathways  which  would  be  willing  to  accept that
  1097.  
  1098. traffic.
  1099.  
  1100.  
  1101.      Many of these considerations suggest that the  higher  level
  1102.  
  1103. up/down  protocols  could  turn  out  to  be rather intricate and
  1104.  
  1105. expensive.  Remember that a gateway  may  have  many  many  hosts
  1106.  
  1107. "homed"  to it, and must be able to determine, for each and every
  1108.  
  1109. one of these hosts, whether communication with  it  is  possible.
  1110.  
  1111. Yet  it probably is not feasible to suppose that each gateway can
  1112.  
  1113. be continuously running an up/down protocol with  each  potential
  1114.  
  1115.                              - 19 -
  1116.  
  1117. IEN 187                              Bolt Beranek and Newman Inc.
  1118.                                                     Eric C. Rosen
  1119.  
  1120.  
  1121. host,  and  still  have time left to handle its ordinary traffic.
  1122.  
  1123. This suggests that the primary up/down determination be made from
  1124.  
  1125. the low-level protocol, i.e., that the Switches  should  rely  on
  1126.  
  1127. the  networks  underlying  the  Pathways to inform them whether a
  1128.  
  1129. given Host is up or down, and the Hosts should similarly rely  on
  1130.  
  1131. the   networks  underlying  the  Pathways  to  pass  them  status
  1132.  
  1133. information about the gateways.  It would be best if  the  higher
  1134.  
  1135. level up/down protocol only needed to be run intermittently, as a
  1136.  
  1137. check   on   the   reliability   of  the  lower  level  protocol.
  1138.  
  1139. Unfortunately, the use of low  level  up/down  protocols  is  not
  1140.  
  1141. always  possible.  Many networks, unlike the ARPANET, do not even
  1142.  
  1143. gather any information about the status of their hosts, and hence
  1144.  
  1145. cannot inform a source Host that it is attempting to send data to
  1146.  
  1147. a destination Host which is not reachable.  (SATNET is an example
  1148.  
  1149. of a network that does not pass "destination dead"  information.)
  1150.  
  1151. In  the  case where a particular Host-Switch Pathway is itself an
  1152.  
  1153. internet, the  problem  is  even  worse.   Unless  the  component
  1154.  
  1155. networks  of  that internet can be made to cooperate in obtaining
  1156.  
  1157. RELIABLE up/down information and passing it back  to  the  source
  1158.  
  1159. Host,  it  will  be  very  hard for a Host to make any reasonable
  1160.  
  1161. determination as to whether a particular Switch is reachable.  We
  1162.  
  1163. would strongly recommend the incorporation of low  level  up/down
  1164.  
  1165. protocols in ALL component networks of the internet.
  1166.  
  1167.  
  1168.      There   is  another  important  problem  in  having  a  Host
  1169.  
  1170. determine which of its potential source Switches on the  internet
  1171.  
  1172.                              - 20 -
  1173.  
  1174. IEN 187                              Bolt Beranek and Newman Inc.
  1175.                                                     Eric C. Rosen
  1176.  
  1177.  
  1178. are  up  and which are down.  In order to run a protocol with the
  1179.  
  1180. Switch, or even to  query  the  lower  level  network  about  the
  1181.  
  1182. Switch,  the  Host  must have some way of identifying the Switch.
  1183.  
  1184. It is not so difficult for a Host on the ARPANET to identify  the
  1185.  
  1186. IMPs  that  it is directly connected to, since it is quite simple
  1187.  
  1188. to devise a protocol by which a Host can send a message down each
  1189.  
  1190. of its access lines, asking who is  on  the  other  end.   It  is
  1191.  
  1192. rather more difficult for a Host to find out which gateways it is
  1193.  
  1194. homed  to (i.e., which gateways are on a common network with it).
  1195.  
  1196. There is no easy way for an ARPANET Host to find out which  other
  1197.  
  1198. ARPANET   hosts  are  Catenet  gateways.   There  is  no  "direct
  1199.  
  1200. connection" at which to direct protocol messages.  In the current
  1201.  
  1202. Catenet, hosts have to  know  in  advance  how  to  identify  the
  1203.  
  1204. Catenet  gateways  on  their networks (although there are certain
  1205.  
  1206. restricted circumstances under which a host can obtain  the  name
  1207.  
  1208. of  another gateway from a gateway about which it already knows).
  1209.  
  1210. Yet it does not seem like a good idea to require a Host to  know,
  1211.  
  1212. a  priori,  which  other  Hosts  on its network are also internet
  1213.  
  1214. Switches.  This makes  it  difficult  to  enable  Hosts  to  take
  1215.  
  1216. advantage  of newly installed gateways, without making changes by
  1217.  
  1218. hand to tables in the Hosts  (a  procedure  which  could  require
  1219.  
  1220. weeks  to take effect).  There is a rather attractive solution to
  1221.  
  1222. this problem.  If each component  network  in  the  internet  can
  1223.  
  1224. determine  for  itself  which  of  its  Hosts  are  also internet
  1225.  
  1226. Switches (gateways),  then  the  Switches  of  that  network  can
  1227.  
  1228.  
  1229.                              - 21 -
  1230.  
  1231. IEN 187                              Bolt Beranek and Newman Inc.
  1232.                                                     Eric C. Rosen
  1233.  
  1234.  
  1235. provide  that  information  to the Hosts.  This would require the
  1236.  
  1237. existence of a protocol which the gateways run with the  Switches
  1238.  
  1239. of  the  individual  component  networks,  by  means of which the
  1240.  
  1241. gateways declare themselves  to  be  gateways.   Each  individual
  1242.  
  1243. network  would  also  have  to  have  some  internal protocol for
  1244.  
  1245. disseminating this information to other Hosts,  and  for  keeping
  1246.  
  1247. this  information  up  to  date.   If  the  network  allows GROUP
  1248.  
  1249. ADDRESSING, further advantages are possible.  The  network  could
  1250.  
  1251. maintain  a group address (called, say, "Catenet Gateways") which
  1252.  
  1253. varies dynamically as  gateways  enter  and  leave  the  network.
  1254.  
  1255. Hosts could find out which gateways are reachable over particular
  1256.  
  1257. network  access lines by sending some sort of protocol message to
  1258.  
  1259. the group address, and waiting to see who replies.   Hosts  would
  1260.  
  1261. then  not  have to have any a priori knowledge of the gateways on
  1262.  
  1263. their home networks.
  1264.  
  1265.  
  1266.      One very important though often neglected aspect of  up/down
  1267.  
  1268. protocols is the way in which the up/down protocol interacts with
  1269.  
  1270. the  ability  to  perform  adequate  maintenance  of  the Network
  1271.  
  1272. Structure.  It is  tempting  to  think  that  a  Pathway  up/down
  1273.  
  1274. protocol  ought to declare a Pathway "down" only if it is totally
  1275.  
  1276. dead or otherwise totally  unusable.   But  in  fact,  a  pathway
  1277.  
  1278. should  be  declared  down before it becomes totally dead, if its
  1279.  
  1280. packet "non-delivery rate" exceeds a certain threshold.  (We  use
  1281.  
  1282. the  term "non-delivery rate" where the term "error rate" is more
  1283.  
  1284. commonly used.  We are trying to emphasize that it  is  important
  1285.  
  1286.                              - 22 -
  1287.  
  1288. IEN 187                              Bolt Beranek and Newman Inc.
  1289.                                                     Eric C. Rosen
  1290.  
  1291.  
  1292. to  detect  not only errors, in the sense of checksum errors, but
  1293.  
  1294. rather any circumstances, including but not limited  to  checksum
  1295.  
  1296. errors, which prevent the proper delivery of packets.)  There are
  1297.  
  1298. two reasons for this:
  1299.  
  1300.  
  1301.      1) The existence  of  a  non-zero  non-delivery  rate  on  a
  1302.  
  1303.         Pathway  implies that some packets placed on that Pathway
  1304.  
  1305.         will not make it through  to  the  other  end.   In  most
  1306.  
  1307.         applications, these packets will have to be retransmitted
  1308.  
  1309.         at some higher level of protocol, or else by the end user
  1310.  
  1311.         himself  (packetized  speech is one of the few exceptions
  1312.  
  1313.         to this).  As the number  of  retransmissions  increases,
  1314.  
  1315.         the  delay  also increases, and the throughput decreases.
  1316.  
  1317.         So when the non-delivery rate reaches  a  certain  point,
  1318.  
  1319.         the  Pathway  should be removed from service, in order to
  1320.  
  1321.         improve delay and throughput.  Of  course,  this  assumes
  1322.  
  1323.         that  an  alternate  Pathway  is  available  with a lower
  1324.  
  1325.         non-delivery  rate.   Also,  other  things  being  equal,
  1326.  
  1327.         removing  bandwidth  from  a  Network Structure will also
  1328.  
  1329.         tend to increase  delay  and  reduce  throughput,  so  we
  1330.  
  1331.         really  want  the up/down protocol to pick out the proper
  1332.  
  1333.         cross-over point.
  1334.  
  1335.  
  1336.      2) It is often better to fix a Pathway at the first sign  of
  1337.  
  1338.         trouble  than  to  wait  for  it  to  fail  totally.  One
  1339.  
  1340.         implication of this is that the up/down  protocol  should
  1341.  
  1342.  
  1343.                              - 23 -
  1344.  
  1345. IEN 187                              Bolt Beranek and Newman Inc.
  1346.                                                     Eric C. Rosen
  1347.  
  1348.  
  1349.         perform  equally  well  whether  or  not  the  Pathway is
  1350.  
  1351.         heavily loaded with traffic.  We would not want to use  a
  1352.  
  1353.         protocol  which  made  its determination solely by making
  1354.  
  1355.         measurements of user traffic, since that  protocol  would
  1356.  
  1357.         not  function  well  during  periods when user traffic is
  1358.  
  1359.         very light.  That is,  a  faulty  Pathway  with  no  user
  1360.  
  1361.         traffic would not be detected.  Yet if repair work has to
  1362.  
  1363.         be  done  on  a  Pathway,  we would most like to find out
  1364.  
  1365.         about it during lightly loaded hours, so that a  fix  can
  1366.  
  1367.         be  effected with minimal disruption, possibly before the
  1368.  
  1369.         heavily loaded hours begin.
  1370.  
  1371.  
  1372.      Another  important  characteristic  for  a  Pathway  up/down
  1373.  
  1374. protocol  to  have  is the ability to determine the nature of the
  1375.  
  1376. Pathway "outage".  This is quite important for  fault  isolation,
  1377.  
  1378. but  is easy for a host software person to overlook, since he may
  1379.  
  1380. not be aware of such issues.  If a Host cannot get its packets to
  1381.  
  1382. a Switch over a certain Pathway, it  will  want  to  regard  that
  1383.  
  1384. Pathway as down, and will want to use an alternate Pathway.  From
  1385.  
  1386. the Host perspective, it doesn't care whether the reason it can't
  1387.  
  1388. use  the Pathway is because of a network partition, or because of
  1389.  
  1390. network congestion, or because of some other reason.  However, if
  1391.  
  1392. the Host personnel want  to  be  able  to  call  up  the  Pathway
  1393.  
  1394. personnel  and request that the problem be fixed, it's not enough
  1395.  
  1396. to say, "Your network isn't  working;  call  me  back  when  it's
  1397.  
  1398. fixed."   The  more  information the Pathway up/down protocol can
  1399.  
  1400.                              - 24 -
  1401.  
  1402. IEN 187                              Bolt Beranek and Newman Inc.
  1403.                                                     Eric C. Rosen
  1404.  
  1405.  
  1406. gather, the quicker a fix can be effected.  In the case where the
  1407.  
  1408. Pathway is the  ARPANET,  quite  a  bit  of  information  can  be
  1409.  
  1410. gathered  from  proper  instrumentation  of  the 1822 module, and
  1411.  
  1412. proper attention by the host software to the 1822 replies;   this
  1413.  
  1414. will be discussed further in section 2.6.
  1415.  
  1416.  
  1417.      The design of the ARPANET's line up/down protocol might be a
  1418.  
  1419. good  model for the design of a general Pathway up/down protocol.
  1420.  
  1421. The design of the ARPANET protocol was based upon a  mathematical
  1422.  
  1423. analysis  of the probabilistic error characteristics of telephone
  1424.  
  1425. circuits, and the protocol is intended to bring a line down  when
  1426.  
  1427. and  only  when its error rate exceeds a threshold.  However, the
  1428.  
  1429. error  characteristics  of  Pathways   in   general   (i.e.,   of
  1430.  
  1431. packet-switching  networks)  are  not well understood at all, and
  1432.  
  1433. there is no similar mathematical analysis that we can appeal  to.
  1434.  
  1435. At present, we can offer no ready answer to the question of how a
  1436.  
  1437. Host  can  tell  which  of  several  possible  source Switches is
  1438.  
  1439. reachable, if  the  Switches  are  accessed  via  a  network  (or
  1440.  
  1441. sequence of networks) which will not even inform the Host whether
  1442.  
  1443. or  not  its  traffic  even gets delivered.  This is an important
  1444.  
  1445. question which will require  further  thought,  and  considerable
  1446.  
  1447. experimentation.
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.                              - 25 -
  1458.  
  1459. IEN 187                              Bolt Beranek and Newman Inc.
  1460.                                                     Eric C. Rosen
  1461.  
  1462.  
  1463. 2.2  Choosing a Source Switch
  1464.  
  1465.  
  1466.      Once  a  Host  has  determined  which source Switches it can
  1467.  
  1468. reach over which of its interfaces, it  still  has  to  determine
  1469.  
  1470. which  one  to use for sending some particular packet (unless the
  1471.  
  1472. Host is "lucky" enough to find out that only one source Switch is
  1473.  
  1474. reachable).  Making the proper choice  can  be  quite  important,
  1475.  
  1476. since  the  performance  which  the  Host  gets  may vary greatly
  1477.  
  1478. depending upon which source Switch it  selects.   That  is,  some
  1479.  
  1480. source  Switch  might be much closer to the destination, in terms
  1481.  
  1482. of delay, than another.  It then  might  be  quite  important  to
  1483.  
  1484. choose  the  proper  one.   To  make  things a bit more concrete,
  1485.  
  1486. consider the case of a Host which  is  multi-homed  (via  several
  1487.  
  1488. distinct  1822  links) to several ARPANET IMPs, and whose traffic
  1489.  
  1490. can be handled entirely within the ARPANET.   There  are  several
  1491.  
  1492. things  a  host  might  want to take into account in choosing the
  1493.  
  1494. best source IMP to use for a particular packet, including:
  1495.  
  1496.  
  1497.      1) The loading on the 1822  access  line  to  each  possible
  1498.  
  1499.         source IMP.
  1500.  
  1501.  
  1502.      2) The distance between each source IMP and the  destination
  1503.  
  1504.         Host, for some notion of "distance."
  1505.  
  1506.  
  1507.      The  first  of  these  two  quantities is relatively easy to
  1508.  
  1509. obtain, since all the Host need do is monitor its own 1822 lines;
  1510.  
  1511. it should  be  possible  to  devise  a  monitoring  scheme  which
  1512.  
  1513.  
  1514.                              - 26 -
  1515.  
  1516. IEN 187                              Bolt Beranek and Newman Inc.
  1517.                                                     Eric C. Rosen
  1518.  
  1519.  
  1520. indicates  which  of the 1822 lines is providing the best service
  1521.  
  1522. to its  IMP,  perhaps  simply  by  measuring  the  queuing  delay
  1523.  
  1524. experienced  in  the Host by messages queued for that line.  (Any
  1525.  
  1526. such measurement would have to take  into  account  some  of  the
  1527.  
  1528. niceties  of  the  1822 protocol, though.)  Obtaining information
  1529.  
  1530. about the second quantity is more difficult.  The Host might  try
  1531.  
  1532. to  keep some measurement of round-trip delay (delay until a RFNM
  1533.  
  1534. is received) between itself and each destination Host.   However,
  1535.  
  1536. in order to do this, some traffic for each destination Host would
  1537.  
  1538. have to be sent over each access line, so that the delay could be
  1539.  
  1540. measured.   This  means  that  some traffic has to be sent over a
  1541.  
  1542. long delay path, simply in order to determine that that is a long
  1543.  
  1544. delay path.  A simpler scheme might be for the Host to get  delay
  1545.  
  1546. information from the IMP.  A Host could ask each potential source
  1547.  
  1548. IMP  what  its  delay  to the destination Host is.  By using this
  1549.  
  1550. information, plus the information it gathers  locally  about  the
  1551.  
  1552. loading  of  its  access  lines,  the  Host could determine which
  1553.  
  1554. source IMP provides the shortest path to the destination.
  1555.  
  1556.  
  1557.      This would require that we define a protocol by which a Host
  1558.  
  1559. can ask the IMPs to which it is homed to provide their delays  to
  1560.  
  1561. a   destination   Host.   The  Host  could  make  these  requests
  1562.  
  1563. periodically, and then change its selection  of  source  IMPs  as
  1564.  
  1565. required  in order to react to changes in delay.  There are a few
  1566.  
  1567. subtle protocol issues to be considered here, though.   We  would
  1568.  
  1569. have  to  make  sure that a Host cannot beat a Switch to death by
  1570.  
  1571.                              - 27 -
  1572.  
  1573. IEN 187                              Bolt Beranek and Newman Inc.
  1574.                                                     Eric C. Rosen
  1575.  
  1576.  
  1577. constantly asking it what its delays are; probably we would  have
  1578.  
  1579. to  give  the Switch the option of not replying to these requests
  1580.  
  1581. if it is too busy with other things (like ordinary data traffic).
  1582.  
  1583. A bigger problem lies in the assumption that  the  Switches  will
  1584.  
  1585. even  have  this  data to provide.  The routing algorithm used by
  1586.  
  1587. the ARPANET IMPs does, in fact, provide each IMP with a value  of
  1588.  
  1589. delay,  in milliseconds, to each other IMP in the network.  There
  1590.  
  1591. is no reason why this information could not be fed  back  to  the
  1592.  
  1593. hosts  on  request.  Note, however, that while a source IMP knows
  1594.  
  1595. its delay to each possible destination IMP, it does not know  its
  1596.  
  1597. delay  to  each  potential  destination  HOST  over each possible
  1598.  
  1599. access line to that Host, since the routing  algorithm  does  not
  1600.  
  1601. maintain  measurements of delay from an IMP to a locally attached
  1602.  
  1603. host.  Yet this latter delay might be quite significant.   Still,
  1604.  
  1605. the  information that the ARPANET IMPs could provide to the Hosts
  1606.  
  1607. should enable them to make a better choice than they  could  make
  1608.  
  1609. without this information.
  1610.  
  1611.  
  1612.      Another  problem  with this idea of having the Switches feed
  1613.  
  1614. back delay information to the  Hosts  is  the  proper  choice  of
  1615.  
  1616. units.  If a Host is going to take the delay information provided
  1617.  
  1618. by   the  network  and  then  add  some  locally  measured  delay
  1619.  
  1620. information to it, it is important for  the  Host  to  know  what
  1621.  
  1622. units the network is using to measure delay.  Yet we also have to
  1623.  
  1624. ensure  that  the  network developers and maintainers are free to
  1625.  
  1626. change the way in which the network does  measurements,  and  the
  1627.  
  1628.                              - 28 -
  1629.  
  1630. IEN 187                              Bolt Beranek and Newman Inc.
  1631.                                                     Eric C. Rosen
  1632.  
  1633.  
  1634. units  in  which  the  measurements are taken, WITHOUT NEEDING TO
  1635.  
  1636. COORDINATE SUCH CHANGES WITH ALL HOST ADMINISTRATIONS.  That  is,
  1637.  
  1638. we  don't  want  further  development of the network, and further
  1639.  
  1640. refinements in the way  network  measurements  are  done,  to  be
  1641.  
  1642. overly constrained by the fact that the Hosts demand measurements
  1643.  
  1644. in  a  certain  unit.   We also want to ensure that host software
  1645.  
  1646. implementations are not invalidated by a decision to  change  the
  1647.  
  1648. units  that  the  network uses for its internal measurements.  So
  1649.  
  1650. the protocol would have to enable the Switch  to  tell  the  Host
  1651.  
  1652. what  units  it  is  providing;  the  Host  would  then  make any
  1653.  
  1654. necessary conversions.  (Alternatively, the Host could  tell  the
  1655.  
  1656. Switch  what  units  it  wants,  and  the  Switch  could  do  the
  1657.  
  1658. conversion before sending the information to the Host.)
  1659.  
  1660.  
  1661.      In  the  internet  environment,  the   situation   is   more
  1662.  
  1663. complicated.   An  ARPANET  Host  which  is also an internet Host
  1664.  
  1665. would have to (a) figure out its delay  to  each  of  its  source
  1666.  
  1667. IMPs,  (b)  query  each  source  IMP for its delay to each source
  1668.  
  1669. gateway, and (c) query each source gateway  about  its  delay  to
  1670.  
  1671. each  destination.  There is no straightforward way to gather the
  1672.  
  1673. rest of the needed delay information, however, namely  the  delay
  1674.  
  1675. from  the  destination  gateway to the destination Host.  In more
  1676.  
  1677. complex Network Structures,  with  internets  nested  on  top  of
  1678.  
  1679. internets,  this  problem  becomes increasingly more complex.  It
  1680.  
  1681. seems  that  the  only  really  reliable  way,   and   the   most
  1682.  
  1683. straightforward  way,  for  the source Host to gather information
  1684.  
  1685.                              - 29 -
  1686.  
  1687. IEN 187                              Bolt Beranek and Newman Inc.
  1688.                                                     Eric C. Rosen
  1689.  
  1690.  
  1691. about the delays via various source  Switches  to  a  destination
  1692.  
  1693. Host,  is  for  it  to  do  the measurements itself.  This is the
  1694.  
  1695. recommended solution.  Delay  information  should  also  be  made
  1696.  
  1697. available  from  the component networks for Hosts which cannot do
  1698.  
  1699. this, but it should be understood that those hosts cannot  expect
  1700.  
  1701. to get as good a quality of service as the hosts which go to more
  1702.  
  1703. trouble to do their own measurements.
  1704.  
  1705.  
  1706.  
  1707. 2.3  Type of Service
  1708.  
  1709.  
  1710.      One  very  important  piece  of information that a Host must
  1711.  
  1712. specify to the source Switch through the Network Access  Protocol
  1713.  
  1714. is the "type of service" desired.  To quote from the DoD standard
  1715.  
  1716. Internet  Protocol  (IP)  specification  [1, p. 15], "The Type of
  1717.  
  1718. Service is used to indicate the quality of the  service  desired;
  1719.  
  1720. this  may  be thought of as selecting among Interactive, Bulk, or
  1721.  
  1722. Real Time, for example."  This seems to  make  sense,  since  one
  1723.  
  1724. does  have  the feeling that different types of applications will
  1725.  
  1726. fall  into  different  categories,  and  information  about   the
  1727.  
  1728. categories may help the Switches of the Network Structure through
  1729.  
  1730. which  the  data is moving decide how best to treat it.  However,
  1731.  
  1732. choosing just the right set of categories of service is  quite  a
  1733.  
  1734. complex   matter.   For  example,  both  a  terminal  user  of  a
  1735.  
  1736. time-sharing system, and a user of a query-response system  (like
  1737.  
  1738. an  automated teller) fall under the rubric of "interactive", but
  1739.  
  1740. that doesn't mean that the service  requirements  are  the  same.
  1741.  
  1742.                              - 30 -
  1743.  
  1744. IEN 187                              Bolt Beranek and Newman Inc.
  1745.                                                     Eric C. Rosen
  1746.  
  1747.  
  1748. Both  Remote-Job-Entry and File Transfer fall under the rubric of
  1749.  
  1750. "bulk",  but  it  is  not  obvious  that  they  have   the   same
  1751.  
  1752. requirements.   Both  real-time  process  control  and packetized
  1753.  
  1754. voice fall into the category of "Real Time", but the requirements
  1755.  
  1756. of these two applications seem to be very different.  A very real
  1757.  
  1758. issue, which has not yet been given  adequate  consideration,  is
  1759.  
  1760. the  question  of  just  how  many categories of application type
  1761.  
  1762. there really should be, and just what the implications of putting
  1763.  
  1764. a packet into one of these categories ought to be.  As we go  on,
  1765.  
  1766. we  will  see  a  number  of  problems that arise from failure to
  1767.  
  1768. carefully consider this issue.
  1769.  
  1770.  
  1771.      It is rather difficult to find examples  of  Network  Access
  1772.  
  1773. Protocols  which  have  really  useful class-of-service selection
  1774.  
  1775. mechanisms.  The 1822 protocol allows the  user  to  select  from
  1776.  
  1777. among  two  priorities;  it allows the choice of single-packet or
  1778.  
  1779. multi-packet messages; it allows the choice between "raw packets"
  1780.  
  1781. and "controlled  packets."  It  is  up  to  some  user  (or  more
  1782.  
  1783. realistically,  up to some host software implementer who may have
  1784.  
  1785. only a vague and limited understanding of the applications  which
  1786.  
  1787. his software will serve, and of the network that he is accessing)
  1788.  
  1789. to  map his application characteristics onto these three choices.
  1790.  
  1791. Unfortunately, it is doubtful that there is anyone outside of the
  1792.  
  1793. ARPANET  group  at  BBN  with  any  clear  understanding  of  the
  1794.  
  1795. implications  of  making the various choices.  The task of making
  1796.  
  1797. the optimum choice for some application is further complicated by
  1798.  
  1799.                              - 31 -
  1800.  
  1801. IEN 187                              Bolt Beranek and Newman Inc.
  1802.                                                     Eric C. Rosen
  1803.  
  1804.  
  1805. the fact that the effects of making the various  choices  can  be
  1806.  
  1807. very  dependent  on  the  network load.  For example, it is often
  1808.  
  1809. possible to get more throughput from single-packet messages  than
  1810.  
  1811. from  multi-packet messages.  This will happen if the destination
  1812.  
  1813. IMP has  several  different  source  Hosts  sending  multi-packet
  1814.  
  1815. messages  to  it,  but  is  short on buffer space (as many of the
  1816.  
  1817. ARPANET IMPs are), and if the multi-packet messages contain  only
  1818.  
  1819. two or three packets per message.  Not only is this sort of thing
  1820.  
  1821. very  difficult  for  an arbitrary user to understand (to a naive
  1822.  
  1823. network user, it must seem ridiculous), it  is  also  subject  to
  1824.  
  1825. change  without  notice.   Although  users can vary their service
  1826.  
  1827. significantly by sending optimum size  messages,  the  principles
  1828.  
  1829. governing  the  "optimum"  size  are  very obscure, and we cannot
  1830.  
  1831. really expect users to map their  application  requirements  onto
  1832.  
  1833. this network feature in any reasonable manner.
  1834.  
  1835.  
  1836.      A  similar  problem  arises with respect to the priority bit
  1837.  
  1838. that the 1822 protocol allows.  Basically, a priority packet will
  1839.  
  1840. get queued ahead of any non-priority packets on  the  queues  for
  1841.  
  1842. the  inter-IMP  links  and  on the queues for the IMP-Host access
  1843.  
  1844. lines.  However, priority packets receive no  special  preference
  1845.  
  1846. when  competing  with  non-priority packets for CPU cycles or for
  1847.  
  1848. buffer space.  Also, there is no notion at all in the ARPANET  of
  1849.  
  1850. refusing  to  accept  low priority packets because the network is
  1851.  
  1852. already too heavily loaded with high priority packets.   Although
  1853.  
  1854. someone  who  has  carefully studied the ARPANET might be able to
  1855.  
  1856.                              - 32 -
  1857.  
  1858. IEN 187                              Bolt Beranek and Newman Inc.
  1859.                                                     Eric C. Rosen
  1860.  
  1861.  
  1862. say what the effect of setting the priority  bit  is  under  some
  1863.  
  1864. particular  set  of  circumstances,  some  user  who is wondering
  1865.  
  1866. whether his application requirements are best served  by  setting
  1867.  
  1868. the  priority  bit  really has no way of answering that question.
  1869.  
  1870. The actual effect of the priority bit does not  fully  correspond
  1871.  
  1872. to  any  intuitive  notion  of priority that an arbitrary user is
  1873.  
  1874. likely to  have.   Another  problem:  although  it  is  presently
  1875.  
  1876. allowed,  it  is  not  really a good idea to let the users choose
  1877.  
  1878. whether to set the priority bit or not.  Fortunately, most  hosts
  1879.  
  1880. do  not  submit packets with the priority bit on.  It wouldn't be
  1881.  
  1882. terribly surprising, though, if some  host  software  implementer
  1883.  
  1884. decided  that  he  would always set the priority bit, in order to
  1885.  
  1886. get faster service.  Of course, overuse of the priority bit  just
  1887.  
  1888. means  that it will have no effect at all, and that seems to mean
  1889.  
  1890. that its use must be controlled in some way, and not simply  left
  1891.  
  1892. up to each user, as in the 1822 protocol.
  1893.  
  1894.  
  1895.      The  IP  offers  even  worse  problems  than  1822  in these
  1896.  
  1897. respects.  Like 1822, the IP does not really allow  the  user  to
  1898.  
  1899. classify  his  traffic according to application type.  Rather, it
  1900.  
  1901. forces him to pick one of  5  possible  precedence  values  (from
  1902.  
  1903. highest  to  lowest precedence, whatever that means, exactly), to
  1904.  
  1905. pick one of 4 reliability values (from most to  least  reliable),
  1906.  
  1907. to  indicate  whether  he  wants  his  data  to be stream data or
  1908.  
  1909. datagram data in component networks for which this distinction is
  1910.  
  1911. meaningful, to indicate whether he wants high or low  speed,  and
  1912.  
  1913.                              - 33 -
  1914.  
  1915. IEN 187                              Bolt Beranek and Newman Inc.
  1916.                                                     Eric C. Rosen
  1917.  
  1918.  
  1919. to   indicate  whether  speed  is  more  important  to  him  than
  1920.  
  1921. reliability is.  The idea here, apparently, is that any user  can
  1922.  
  1923. map   his   application   requirements   into   certain  abstract
  1924.  
  1925. properties, and the information which the IP passes from the Host
  1926.  
  1927. to the source Switch is  supposed  to  indicate  which  of  these
  1928.  
  1929. abstract  properties the user needs.  At each internet hop, these
  1930.  
  1931. abstract properties are  supposed  to  be  mapped  to  particular
  1932.  
  1933. properties  that  are meaningful to the network in question.  The
  1934.  
  1935. Pathway Access Protocol for that network would then  be  used  to
  1936.  
  1937. indicate   to   the  Switches  of  that  component  network  what
  1938.  
  1939. particular properties the data transfer should have  within  that
  1940.  
  1941. network.  In fact, the only apparent use of the "type of service"
  1942.  
  1943. information  in  the  internet Network Access Protocol (IP) is to
  1944.  
  1945. carry information to be passed to the individual  Pathway  Access
  1946.  
  1947. Protocols.
  1948.  
  1949.  
  1950.      This  all  sounds  reasonable  enough when considered in the
  1951.  
  1952. abstract, but it gives rise to a large number of vexing  problems
  1953.  
  1954. when  we  attempt to consider particular ways in which this "type
  1955.  
  1956. of service" information is to be  used.   Empirically,  it  seems
  1957.  
  1958. that  few current gateway implementations take any notice of this
  1959.  
  1960. information at all.  We suggest that the problem is not that  the
  1961.  
  1962. individual  implementers  have  not had time to write the code to
  1963.  
  1964. take account of this information, but rather that it is far  from
  1965.  
  1966. clear  how  this information should be handled, or even that this
  1967.  
  1968. information is really meaningful.  We  suggest  further  that  an
  1969.  
  1970.                              - 34 -
  1971.  
  1972. IEN 187                              Bolt Beranek and Newman Inc.
  1973.                                                     Eric C. Rosen
  1974.  
  1975.  
  1976. internet user would also have a great deal of difficulty deciding
  1977.  
  1978. how  to specify the "type of service" information in order to get
  1979.  
  1980. a specific quality of service needed by his application.
  1981.  
  1982.  
  1983.      Suppose a user needs the  maximum  possible  speed  for  his
  1984.  
  1985. application, so he uses IP to indicate that he values speed above
  1986.  
  1987. all  else.  What would the current Catenet do?  For concreteness,
  1988.  
  1989. suppose there is a choice of sending this user's data either  via
  1990.  
  1991. a  sequence of 4 low-delay terrestrial networks, or through three
  1992.  
  1993. satellite networks, each of which contains  two  satellite  hops.
  1994.  
  1995. The  current  implementation  of  the Catenet would send the data
  1996.  
  1997. through the three satellite networks.  However,  since  the  user
  1998.  
  1999. indicated  that  he  values speed above all else, he will get the
  2000.  
  2001. fastest service that each of the satellite networks can  provide!
  2002.  
  2003. Of  course, this may not be what the user will have expected when
  2004.  
  2005. he asked for speed, since the fastest service through a satellite
  2006.  
  2007. network is not fast.  A user may well wonder what  the  point  of
  2008.  
  2009. specifying  speed  is,  if  his  data  is  going to traverse some
  2010.  
  2011. sequence of satellite networks, even if a  much  faster  path  is
  2012.  
  2013. available.  Furthermore, it is not correct to assume, in general,
  2014.  
  2015. that  a  user  who  values  speed  will really want the speediest
  2016.  
  2017. service through every network.  If  traffic  must  go  through  a
  2018.  
  2019. satellite  network,  it  may  be  important to try to get one-hop
  2020.  
  2021. rather than two-hop delay, if this is possible.  Yet it  may  not
  2022.  
  2023. be  economical  to  also try to get the speediest service through
  2024.  
  2025. all terrestrial networks; the difference  between  high  and  low
  2026.  
  2027.                              - 35 -
  2028.  
  2029. IEN 187                              Bolt Beranek and Newman Inc.
  2030.                                                     Eric C. Rosen
  2031.  
  2032.  
  2033. speed  service  through  a  terrestrial  network might be "in the
  2034.  
  2035. noise", even when compared to  the  shortest  delay  through  the
  2036.  
  2037. satellite  network.  It is not impossible, or even unlikely, that
  2038.  
  2039. better overall service (or more cost-effective  service)  can  be
  2040.  
  2041. achieved  by  using  the  fastest  possible  service through some
  2042.  
  2043. networks, but less than the fastest through  others.   There  are
  2044.  
  2045. two  immediate  lessons  here.  First, the characteristics that a
  2046.  
  2047. user specifies in the Network Access Protocol  may  require  some
  2048.  
  2049. interaction  with  routing,  since the characteristics he desires
  2050.  
  2051. simply cannot be provided, in general,  by  sending  his  traffic
  2052.  
  2053. through a random series of networks, and then mapping information
  2054.  
  2055. he  specifies  in  the  Network  Access Protocol into information
  2056.  
  2057. carried in the individual Pathway Access Protocols.  Second, what
  2058.  
  2059. a user means intuitively by "speed" just may not  map  into  what
  2060.  
  2061. some  particular  component net means by "speed".  Once again, we
  2062.  
  2063. see  that  the   basic   problem   stems   from   the   differing
  2064.  
  2065. characteristics of the Pathways in the Network Structure.
  2066.  
  2067.  
  2068.      Another  peculiar  feature  of the IP is the mysterious "S/R
  2069.  
  2070. bit", which a user is supposed to  set  to  indicate  whether  he
  2071.  
  2072. prefers  speed  over  reliability,  or  vice  versa, should these
  2073.  
  2074. conflict.   One  unsuitable  aspect  of  this  is  the   apparent
  2075.  
  2076. assumption  that  it  even  makes sense to prefer either speed or
  2077.  
  2078. reliability over the other, without specifying more  detail.   It
  2079.  
  2080. is   easy  to  imagine  that  some  user  is  willing  to  accept
  2081.  
  2082. reliability of less than  100%  if  he  can  increase  his  speed
  2083.  
  2084.                              - 36 -
  2085.  
  2086. IEN 187                              Bolt Beranek and Newman Inc.
  2087.                                                     Eric C. Rosen
  2088.  
  2089.  
  2090. somewhat.   It  is  also  easy  to  imagine  that a user would be
  2091.  
  2092. willing to accept somewhat slower service if it gives him  higher
  2093.  
  2094. reliability.   But  there  will  always  be a range that the user
  2095.  
  2096. wants to stay within.  If his reliability must be moved  below  a
  2097.  
  2098. certain  threshold  in  order  to get more speed, he may not want
  2099.  
  2100. this, even if he would be willing to say that he prefers speed to
  2101.  
  2102. reliability.  Similarly, if his delay must  go  above  a  certain
  2103.  
  2104. threshold  to  gain  more reliability, he may not want this, even
  2105.  
  2106. if, when  talking  in  general  terms,  he  says  that  he  needs
  2107.  
  2108. reliability more than speed.  It really doesn't make any sense at
  2109.  
  2110. all  to try to map a particular application type into "speed over
  2111.  
  2112. reliability" or  "reliability  over  speed",  unless  ranges  and
  2113.  
  2114. thresholds  are  also  specified.  What this means in practice is
  2115.  
  2116. that a user will not be able to make a reasonable choice  of  how
  2117.  
  2118. to set this bit in the IP header; whatever he sets it to is bound
  2119.  
  2120. to produce results other than those he expects under some not too
  2121.  
  2122. uncommon set of circumstances.
  2123.  
  2124.  
  2125.      We  do  not  want to leave unquestioned the tacit assumption
  2126.  
  2127. that  speed  and  reliability  are  opposing  virtues,  so   that
  2128.  
  2129. increasing  one must be expected to decrease the other.  To quote
  2130.  
  2131. again from the IP spec, "typically networks invoke  more  complex
  2132.  
  2133. (and  delay  producing)  mechanisms  as  the need for reliability
  2134.  
  2135. increases" [1, p 23].  This reasoning  is  somewhat  superficial.
  2136.  
  2137. It  may be true that in some networks, the less reliable kinds of
  2138.  
  2139. service are speedier, but this is not invariably  the  case.   To
  2140.  
  2141.                              - 37 -
  2142.  
  2143. IEN 187                              Bolt Beranek and Newman Inc.
  2144.                                                     Eric C. Rosen
  2145.  
  2146.  
  2147. see  this,  consider  the  following  (fictitious) network.  This
  2148.  
  2149. network  allows  the  user  to  request  either   "reliable"   or
  2150.  
  2151. "unreliable" data transfer.  Reliable packets are controlled by a
  2152.  
  2153. set  of  protocols,  both at the end-end and hop-hop level, which
  2154.  
  2155. ensure delivery.  Unreliable packets are not under the control of
  2156.  
  2157. any such protocols.  Furthermore, reliable packets  go  ahead  of
  2158.  
  2159. unreliable  ones on all queues, in particular, the CPU queue.  In
  2160.  
  2161. addition, unreliable packets can be flushed from the net  at  any
  2162.  
  2163. time,  if  some resource they are using (such as buffer space) is
  2164.  
  2165. needed for a reliable packet.   These  latter  two  measures  are
  2166.  
  2167. needed  to  ensure that the net does not become so heavily loaded
  2168.  
  2169. with unreliable packets that there is no room  for  the  reliable
  2170.  
  2171. ones.   (It  would  not make much sense to advertise a "reliable"
  2172.  
  2173. service, and then to allow the unreliable packets to dominate the
  2174.  
  2175. network by using most of the network  resources.   If  unreliable
  2176.  
  2177. packets  could grab most of the resources, leaving the "reliable"
  2178.  
  2179. ones to scavenge for the left-over resources, then  it  would  be
  2180.  
  2181. virtually   inevitable   that   the   service   received  by  the
  2182.  
  2183. "unreliable" packets would appear,  to  the  users,  to  be  more
  2184.  
  2185. reliable than the service received by the "reliable" packets.  To
  2186.  
  2187. achieve a true dichotomy between reliable and unreliable service,
  2188.  
  2189. the  reliable packets must be given priority in all respects over
  2190.  
  2191. the unreliable ones.  We should also remember, by the  way,  that
  2192.  
  2193. although   many   protocols   combine  features  of  reliability,
  2194.  
  2195. sequentiality, error control, and flow control, these are not the
  2196.  
  2197.  
  2198.                              - 38 -
  2199.  
  2200. IEN 187                              Bolt Beranek and Newman Inc.
  2201.                                                     Eric C. Rosen
  2202.  
  2203.  
  2204. same, and there is no reason why a  network  might  not  offer  a
  2205.  
  2206. reliable  but  unsequenced service).  This sort of network design
  2207.  
  2208. seems quite reasonable, perhaps more reasonable than  the  design
  2209.  
  2210. of  any  existing  network.   It  would  allow  for a (presumably
  2211.  
  2212. inexpensive) class of service ("unreliable") which would be  able
  2213.  
  2214. to  use  only  those  network  resources  not  needed by the more
  2215.  
  2216. reliable (and expensive) class of packets, and  which  would  not
  2217.  
  2218. suffer  any additional delay due to the presence of the protocols
  2219.  
  2220. which would be needed to ensure reliability.  In such a  network,
  2221.  
  2222. unreliable packets might well experience less delay than reliable
  2223.  
  2224. ones,  WHEN  THE  NETWORK  IS  LIGHTLY LOADED; WHEN IT IS HEAVILY
  2225.  
  2226. LOADED, HOWEVER, RELIABLE PACKETS WOULD TEND  TO  EXPERIENCE  THE
  2227.  
  2228. SMALLER DELAY.  If this is the case, it is hard to see how a user
  2229.  
  2230. could  be  expected  to  make  a  reasonable choice of IP service
  2231.  
  2232. parameters at all.  He may know what his needs are,  but  we  can
  2233.  
  2234. hardly  expect  him  to know how to map his needs onto particular
  2235.  
  2236. aspects of the behavior of a particular network component  of  an
  2237.  
  2238. internet, especially when the behavior determined by that mapping
  2239.  
  2240. will  vary  dynamically  with the network loading, and hence with
  2241.  
  2242. the time of day.
  2243.  
  2244.  
  2245.      Two other peculiarities of the "type of service" feature  of
  2246.  
  2247. the  IP are worth mentioning.  First, there seems to be no notion
  2248.  
  2249. of the relation  between  speed  and  priority,  though  in  many
  2250.  
  2251. networks,  the  priority of a message is the major determinant of
  2252.  
  2253. its speed.  (There are, to be sure,  networks  which  attempt  to
  2254.  
  2255.                              - 39 -
  2256.  
  2257. IEN 187                              Bolt Beranek and Newman Inc.
  2258.                                                     Eric C. Rosen
  2259.  
  2260.  
  2261. treat  priority  solely as "acceptance class", differentiating it
  2262.  
  2263. completely from considerations of speed.  However, we know of  no
  2264.  
  2265. network  implementation  which  has  been  shown to differentiate
  2266.  
  2267. SUCCESSFULLY between these two concepts, and there is  reason  to
  2268.  
  2269. doubt  that  this differentiation is even possible in principle.)
  2270.  
  2271. Second, one of the choices to be made is whether to prefer stream
  2272.  
  2273. or datagram service.  This is a clear example of  something  that
  2274.  
  2275. is  not based on "abstract parameters of quality of service", but
  2276.  
  2277. rather on a particular feature of one or two particular networks.
  2278.  
  2279. Requesting stream service will NOT do what a user might expect it
  2280.  
  2281. to do, namely set up a stream  or  virtual  circuit  through  the
  2282.  
  2283. entire  internet.  This would require a lengthy connection set-up
  2284.  
  2285. procedure, involving reservations of resources in  the  gateways,
  2286.  
  2287. which resources are to be used only for specific connections.  If
  2288.  
  2289. we  are  really  serious  about providing stream service, this is
  2290.  
  2291. just  as  important  as  obtaining  stream  service  within   the
  2292.  
  2293. component  networks  serving  as  the  Pathways  of the internet.
  2294.  
  2295. Indeed, it is hard to  imagine  any  real  use  for  an  internet
  2296.  
  2297. "stream service" which treats packets as datagrams during most of
  2298.  
  2299. their  lifetime  in  the internet, and then treats them as stream
  2300.  
  2301. packets in one or two component networks.  It must be  remembered
  2302.  
  2303. that the sort of stream service provided by a network like SATNET
  2304.  
  2305. is  only  useful  to  a  user  if  his data appears at the SATNET
  2306.  
  2307. interface at fixed periods, synchronized with the  scheduling  of
  2308.  
  2309. the  stream  slots  on  the  satellite channel.  If the data must
  2310.  
  2311.  
  2312.                              - 40 -
  2313.  
  2314. IEN 187                              Bolt Beranek and Newman Inc.
  2315.                                                     Eric C. Rosen
  2316.  
  2317.  
  2318. first travel through several datagram  networks  before  reaching
  2319.  
  2320. SATNET,  IT  IS VIRTUALLY IMPOSSIBLE THAT THE DATA WILL ARRIVE AT
  2321.  
  2322. SATNET WITH THE PROPER PERIODICITY to allow it to make proper use
  2323.  
  2324. of the SATNET stream.  Now there are certain specific cases where
  2325.  
  2326. it might be possible to provide some sort of stream service,  say
  2327.  
  2328. if  some  data  is  going  from a local network through SATNET to
  2329.  
  2330. another local network and  thence  directly  to  the  destination
  2331.  
  2332. Host.   (Though even in this case, some sort of connection set-up
  2333.  
  2334. and reservation of resources in the gateways between  SATNET  and
  2335.  
  2336. the  local networks would probably be necessary.)  Note, however,
  2337.  
  2338. that if a  user  requests  this  type  of  service,  he  is  also
  2339.  
  2340. constraining  the types of routes his data can travel.  If SATNET
  2341.  
  2342. is not available, he might not want to use the internet at all at
  2343.  
  2344. that time.  Or he might be willing to  tolerate  a  less  optimal
  2345.  
  2346. route  ("half  a  loaf  is better than none"), but might not want
  2347.  
  2348. "stream service" if the less optimal route has to be used.  In no
  2349.  
  2350. case can a type of  service  like  "stream"  be  obtained  simply
  2351.  
  2352. through  the  mapping  of  "type of service" in the internet onto
  2353.  
  2354. "type of service" in the component networks.
  2355.  
  2356.  
  2357.      We do not want to have a Network Access Protocol  that  will
  2358.  
  2359. need  to  be infinitely expandable, so that the user can indicate
  2360.  
  2361. the type of service he wants in each particular network that  his
  2362.  
  2363. data  may  eventually  travel  through.   For  one  thing, as the
  2364.  
  2365. internet becomes larger, so that there  are  more  paths  between
  2366.  
  2367. each   possible  source  and  destination,  the  users  will  not
  2368.  
  2369.                              - 41 -
  2370.  
  2371. IEN 187                              Bolt Beranek and Newman Inc.
  2372.                                                     Eric C. Rosen
  2373.  
  2374.  
  2375. generally know what  set  of  networks  their  data  will  travel
  2376.  
  2377. through.   Since the number of component networks in the internet
  2378.  
  2379. may be continually increasing, and since we cannot anticipate  in
  2380.  
  2381. advance the features that each new network may offer, it does not
  2382.  
  2383. really  seem  reasonable to have to keep adding fields to the IP,
  2384.  
  2385. to account for particular characteristics of each  new  component
  2386.  
  2387. network.   Yet  this  seems inevitable with the current approach.
  2388.  
  2389. That is, we do not agree with the claim in the IP spec  that  the
  2390.  
  2391. type  of service field in the IP indicates "abstract parameters".
  2392.  
  2393. Rather, we think the type of service field has  been  constructed
  2394.  
  2395. with  certain  particular  networks  in mind, just those networks
  2396.  
  2397. which are currently in the Catenet, and that the various  service
  2398.  
  2399. fields  have  no  meaning  whatsoever  apart  from the particular
  2400.  
  2401. "suggested" mappings to protocol features  of  specific  networks
  2402.  
  2403. given   in   the  spec.   (And  since  these  mappings  are  only
  2404.  
  2405. "suggested", not required, one might wonder whether the  type  of
  2406.  
  2407. service  field  really  has any consistent meaning at all).  This
  2408.  
  2409. situation is perhaps tolerable in a research  environment,  where
  2410.  
  2411. most  of  the users of the internet are explicitly concerned with
  2412.  
  2413. issues of networking, and  willing  to  try  a  large  number  of
  2414.  
  2415. experiments  to  see  what  sort  of  service they get.  One must
  2416.  
  2417. remember, however, that in a truly operational  environment,  the
  2418.  
  2419. average  user will not be concerned at all about networking, will
  2420.  
  2421. not  know  anything  about  networking,  will  not   care   about
  2422.  
  2423. networking,  and will only want the network to appear transparent
  2424.  
  2425.  
  2426.                              - 42 -
  2427.  
  2428. IEN 187                              Bolt Beranek and Newman Inc.
  2429.                                                     Eric C. Rosen
  2430.  
  2431.  
  2432. to him.  In order for such a user to make successful use  of  the
  2433.  
  2434. type   of  service  field  in  a  Network  Access  Protocol,  the
  2435.  
  2436. parameters of the field must be meaningful to him.  If  they  are
  2437.  
  2438. only  meaningful  to network experts, the user will never be able
  2439.  
  2440. to figure out how best to set these parameters.
  2441.  
  2442.  
  2443.      Rather than providing a type of service specification  which
  2444.  
  2445. is  nothing  but  a  sort of "linear combination" of the types of
  2446.  
  2447. service provided by the component networks, the internet ought to
  2448.  
  2449. offer a  small,  specific  number  of  service  types  which  are
  2450.  
  2451. meaningful  at  the  application  level.   The possible values of
  2452.  
  2453. internet   service   type   might   be   "interactive   session,"
  2454.  
  2455. "transaction,"  "file transfer", "packetized speech," and perhaps
  2456.  
  2457. a few others.  The categories should be simple enough so that the
  2458.  
  2459. user can figure out which  category  his  particular  application
  2460.  
  2461. falls  into  without needing to know the details of the operation
  2462.  
  2463. of the internet.   The  Switches  of  the  internet  should  take
  2464.  
  2465. responsibility  for  sending the data on a route which is capable
  2466.  
  2467. of providing the requested type of service, and for  sending  the
  2468.  
  2469. data  through  component  networks of the internet in a way which
  2470.  
  2471. maximizes the possibility that the type of service requested will
  2472.  
  2473. actually be achieved.  Of course, in order to do  this,  we  must
  2474.  
  2475. first  answer  a  couple of hard questions, such as "Exactly what
  2476.  
  2477. characteristics  of  service  do  users  want  and   expect   for
  2478.  
  2479. particular  applications?",  and "What features must the internet
  2480.  
  2481. Switches have, and what  features  must  the  component  networks
  2482.  
  2483.                              - 43 -
  2484.  
  2485. IEN 187                              Bolt Beranek and Newman Inc.
  2486.                                                     Eric C. Rosen
  2487.  
  2488.  
  2489. have,   in   order   to   provide   service  with  the  necessary
  2490.  
  2491. characteristics?"   In  order  to  give  adequate  communications
  2492.  
  2493. service  in  an operational environment, however, these questions
  2494.  
  2495. must be given careful consideration by  internet  designers.   To
  2496.  
  2497. some  extent,  these questions are difficult research issues, and
  2498.  
  2499. answering them will require doing some systematic experimentation
  2500.  
  2501. and instrumentation in the internet.  The problem  is  hard,  but
  2502.  
  2503. unavoidable.    The   IP's   current   approach  seems  aimed  at
  2504.  
  2505. side-stepping these issues, since it places the  burden  entirely
  2506.  
  2507. on  the  user.   It  tends  to  give  users the illusion that, by
  2508.  
  2509. properly specifying the bit fields in the  IP  header,  they  can
  2510.  
  2511. tune  the  internet  to  provide  them  with the specific type of
  2512.  
  2513. service they find most desirable.   This  is,  however,  only  an
  2514.  
  2515. illusion.   The  perspective  taken by the current IP seems to be
  2516.  
  2517. not, "How should the internet be designed so as  to  provide  the
  2518.  
  2519. needed  characteristics  of  service  while  providing  a  simple
  2520.  
  2521. interface to the user?", but rather, "Taking the  current  design
  2522.  
  2523. of  the internet as a given, how can we give the user the ability
  2524.  
  2525. to  massage,  bend,  and  twist  it  so   as   to   get   service
  2526.  
  2527. characteristics  which  might  be  close  to what he wants?"  The
  2528.  
  2529. former perspective seems much more appropriate than  the  latter.
  2530.  
  2531.  
  2532.      Although  we  are  not  at  present  prepared  to  offer  an
  2533.  
  2534. alternative to IP, there are several lessons  we  would  like  to
  2535.  
  2536. draw from this discussion:
  2537.  
  2538.  
  2539.  
  2540.                              - 44 -
  2541.  
  2542. IEN 187                              Bolt Beranek and Newman Inc.
  2543.                                                     Eric C. Rosen
  2544.  
  2545.  
  2546.      1) While an internet Network  Access  Protocol  really  does
  2547.  
  2548.         need  to  contain  some field which indicates the desired
  2549.  
  2550.         type of service in a manner which is abstract  enough  to
  2551.  
  2552.         be  mapped  to particular protocol features of particular
  2553.  
  2554.         networks, the  proper  specification  of  a  sufficiently
  2555.  
  2556.         abstract  set  of  parameters  is  an  open and difficult
  2557.  
  2558.         research issue, but one which needs to be studied  if  an
  2559.  
  2560.         operational internet configuration is ever to give really
  2561.  
  2562.         adequate service to a relatively naive end-user.
  2563.  
  2564.  
  2565.      2) Providing the  requested  type  of  service  may  require
  2566.  
  2567.         cooperation  from  all  the Switches (perhaps through the
  2568.  
  2569.         routing algorithm), and involves more than  just  mapping
  2570.  
  2571.         fields  from  the internet Network Access Protocol to the
  2572.  
  2573.         particular  access  protocols  used  by   the   component
  2574.  
  2575.         networks.   If  the type of service requested by the user
  2576.  
  2577.         is to be consistently meaningful, then his  request  must
  2578.  
  2579.         be  given  UNIFORM  treatment  by  the internet Switches.
  2580.  
  2581.         Different gateways must not  be  allowed   to  treat  the
  2582.  
  2583.         request differently.
  2584.  
  2585.  
  2586. 2.4  Special Features
  2587.  
  2588.  
  2589.      The  DoD  Standard  Internet  Protocol  contains a number of
  2590.  
  2591. features which, while not strictly necessary in order for a  user
  2592.  
  2593. to  get his data delivered, and distinct from the type of service
  2594.  
  2595. field, do affect to some extent the service a user gets from  the
  2596.  
  2597.                              - 45 -
  2598.  
  2599. IEN 187                              Bolt Beranek and Newman Inc.
  2600.                                                     Eric C. Rosen
  2601.  
  2602.  
  2603. internet.   Some  of the features are worthy of comment, and that
  2604.  
  2605. is the purpose of this section.
  2606.  
  2607.  
  2608. 2.4.1  Time to Live
  2609.  
  2610.  
  2611.      The presence of the "time-to-live" field in the  Catenet  IP
  2612.  
  2613. seems  like  a clear example of something that has no place in an
  2614.  
  2615. access protocol.  The IP specification [1] has some contradictory
  2616.  
  2617. things to say about time-to-live.  The user is  supposed  to  set
  2618.  
  2619. this  field  to  the  number  of seconds after which he no longer
  2620.  
  2621. cares to have his information delivered, or something like  that.
  2622.  
  2623. It's  far from clear how some user is supposed to make a decision
  2624.  
  2625. as to what value to set this to.  For one  thing,  although  this
  2626.  
  2627. value is supposed to be represented in units of one second [1, p.
  2628.  
  2629. 24], there does not appear to be any requirement for the gateways
  2630.  
  2631. to  figure  out how many seconds to decrement this value by.  The
  2632.  
  2633. spec actually says that each gateway should decrement this  field
  2634.  
  2635. by  at  least  one,  even  if  it  has  no idea how much time has
  2636.  
  2637. actually elapsed [1, p. 40].  Well, a user  might  ask,  is  this
  2638.  
  2639. field  represented  in seconds or isn't it?  What is the point of
  2640.  
  2641. saying in  the  spec  that  it  is  in  seconds,  if  it  is  not
  2642.  
  2643. necessarily in seconds; this will only result in confusion.  That
  2644.  
  2645. is, any attempt by a user to set this field to a reasonable value
  2646.  
  2647. is  likely  to  have  unanticipated consequences.  Any attempt to
  2648.  
  2649. make inferences about internet  behavior  from  the  effect  that
  2650.  
  2651. various  settings  of  the time-to-live field will necessarily be
  2652.  
  2653. unreliable.
  2654.                              - 46 -
  2655.  
  2656. IEN 187                              Bolt Beranek and Newman Inc.
  2657.                                                     Eric C. Rosen
  2658.  
  2659.  
  2660.      At any rate, unless the Switches  all  keep  a  synchronized
  2661.  
  2662. clock,  there  is  no  real  way for them to determine how long a
  2663.  
  2664. packet has been in the network (or internet), as opposed  to  how
  2665.  
  2666. much  time  it has spent in the Switches, and this difference may
  2667.  
  2668. be significant  if  a  packet  is  sent  over  several  long-haul
  2669.  
  2670. networks  with  long-delay lines but fast Switches.  It's hard to
  2671.  
  2672. see the point of requiring a user  to  specify,  in  the  Network
  2673.  
  2674. Access  Protocol, a value which cannot be assigned any consistent
  2675.  
  2676. meaning.  (It's not clear what value this information has anyway;
  2677.  
  2678. according  to  the  IP  spec,  "the   intention   is   to   cause
  2679.  
  2680. undeliverable  datagrams  to  be  discarded"  [1,  p. 24].  But a
  2681.  
  2682. reasonable routing algorithm should cause undeliverable datagrams
  2683.  
  2684. to be discarded anyway, no matter what  value  is  specified  for
  2685.  
  2686. time-to-live).
  2687.  
  2688.  
  2689.      It  seems  plain  in  any  case  that  over  the years, Host
  2690.  
  2691. personnel will begin to tend to set this  field  to  its  maximum
  2692.  
  2693. value anyway.  In most implementations, the setting of this field
  2694.  
  2695. will  not  be left to the end-user, but will be in the code which
  2696.  
  2697. implements the IP.  Several years from now, no one will  remember
  2698.  
  2699. the  importance  of  setting  this  field correctly.  Eventually,
  2700.  
  2701. someone will discover that the data he sends to a  certain  place
  2702.  
  2703. does   not   get   through,   and   after   months  of  intensive
  2704.  
  2705. investigation, it will turn out that his IP is setting too  small
  2706.  
  2707. a value in the time-to-live field, and his packets are dying just
  2708.  
  2709. before  they reach their destination.  This will make people tend
  2710.  
  2711.                              - 47 -
  2712.  
  2713. IEN 187                              Bolt Beranek and Newman Inc.
  2714.                                                     Eric C. Rosen
  2715.  
  2716.  
  2717. to use the maximum value as a default, reducing  the  utility  of
  2718.  
  2719. the  information  to  almost nil.  (No one will want to spend the
  2720.  
  2721. time  re-tuning  this  value  to  the  optimum  as  the  internet
  2722.  
  2723. configuration  expands,  causing  real  packet  delays  to become
  2724.  
  2725. longer and longer.  In fact, at many Host sites there may not  be
  2726.  
  2727. anyone  who  can figure out enough of the Host code to be able to
  2728.  
  2729. re-tune this value.)
  2730.  
  2731.  
  2732.      Time-to-live, while useful for debugging purposes (perhaps),
  2733.  
  2734. has no real place in an operational  system,  and  hence  is  not
  2735.  
  2736. properly part of a Network Access Protocol.  If the Switches of a
  2737.  
  2738. Network  Structure  want to perform packet life timing functions,
  2739.  
  2740. in a  way  which  is  under  the  control  of  a  single  network
  2741.  
  2742. administration,   and   easily   modified   to  reflect  changing
  2743.  
  2744. realities, that is one thing.  It is quite a different  thing  to
  2745.  
  2746. build this into a Host-level protocol, with a contradictory spec,
  2747.  
  2748. where  it  will  certainly fall into disuse, or misuse.  Protocol
  2749.  
  2750. features  which  are  only   useful   (at   best)   for   network
  2751.  
  2752. experimenters  and  investigators are bound to cause trouble when
  2753.  
  2754. invoked at the Host level, as part of a protocol which every Host
  2755.  
  2756. must implement, and whose implementers may not  fully  understand
  2757.  
  2758. the implications of what they are doing.
  2759.  
  2760.  
  2761.      Some  of  these difficulties have, as their basic cause, the
  2762.  
  2763. old implicit model of the internet that we discussed in IEN  185.
  2764.  
  2765. The  IP  conflates  protocol features that properly belong to the
  2766.  
  2767.  
  2768.                              - 48 -
  2769.  
  2770. IEN 187                              Bolt Beranek and Newman Inc.
  2771.                                                     Eric C. Rosen
  2772.  
  2773.  
  2774. Network Access Protocol with features that properly belong to the
  2775.  
  2776. protocol used  internally  among  the  Switches.   This  sort  of
  2777.  
  2778. conflation,  and  consequent  violation of protocol layering, are
  2779.  
  2780. inevitable if the gateways are seen as hosts which patch networks
  2781.  
  2782. together, rather  than  as  Switches  in  an  autonomous  Network
  2783.  
  2784. Structure.
  2785.  
  2786.  
  2787. 2.4.2  Source Routing
  2788.  
  2789.  
  2790.      The  current  IP  has  a  feature known as "source routing,"
  2791.  
  2792. which allows each user to specify the sequence of  networks  that
  2793.  
  2794. his  internet  packet is to travel.  We mention this primarily as
  2795.  
  2796. an example of something that a Network Access Protocol in a truly
  2797.  
  2798. operational  environment  ought  not  to  have.   An   acceptable
  2799.  
  2800. internet  routing  algorithm  ought  to distribute the traffic in
  2801.  
  2802. order to achieve some general goal  on  an  internet-wide  basis,
  2803.  
  2804. such  as  minimizing delay, maximizing throughput, etc.  Any such
  2805.  
  2806. routing algorithm is subverted if each user is allowed to specify
  2807.  
  2808. his own route.   Much  of  the  routing  algorithm's  ability  to
  2809.  
  2810. prevent  or  avoid  congestion  is  also  compromised  if certain
  2811.  
  2812. packets are allowed to follow  a  route  pre-determined  by  some
  2813.  
  2814. user,  even if the routing algorithm determines that best service
  2815.  
  2816. (either for those packets themselves, or for other packets in the
  2817.  
  2818. internet) would be obtained if those packets followed a different
  2819.  
  2820. route.
  2821.  
  2822.  
  2823.  
  2824.  
  2825.                              - 49 -
  2826.  
  2827. IEN 187                              Bolt Beranek and Newman Inc.
  2828.                                                     Eric C. Rosen
  2829.  
  2830.  
  2831.      To a certain extent, the  presence  of  the  source  routing
  2832.  
  2833. option  in the IP is probably a result of the rather poor routing
  2834.  
  2835. strategy in the present Catenet,  and  a  way  of  attempting  to
  2836.  
  2837. obtain  better  service  than  the routing algorithm can actually
  2838.  
  2839. provide.  The long-term solution to  this  problem  would  be  to
  2840.  
  2841. improve  the  routing  algorithm,  rather than to subvert it with
  2842.  
  2843. something that is basically a kludge.  We would  claim  that  the
  2844.  
  2845. existence of any application or service that seems to require the
  2846.  
  2847. use  of  source  routing  is really an indication of some lack or
  2848.  
  2849. failure in the design of the internet,  and  a  proper  long-term
  2850.  
  2851. solution   is   to   improve   the   situation  by  making  basic
  2852.  
  2853. architectural changes in the internet, rather than by grafting on
  2854.  
  2855. new kludges.
  2856.  
  2857.  
  2858.      Source routing also has its use as an  experimental  device,
  2859.  
  2860. allowing tests to be performed which might indicate whether it is
  2861.  
  2862. really  worthwhile  to  add  some  new  feature or service to the
  2863.  
  2864. internet.  (Although the way in which source routing subverts the
  2865.  
  2866. basic internet routing algorithm can have disturbing side-effects
  2867.  
  2868. on the experimental results, which must  be  properly  controlled
  2869.  
  2870. for.)   However,  we  doubt  that  any  truly  useful experiments
  2871.  
  2872. requiring source routing can be performed by individual users  in
  2873.  
  2874. isolation.   Rather, useful experiments would seem to require the
  2875.  
  2876. cooperation and coordination of the participating users  as  well
  2877.  
  2878. as  those who are responsible for controlling and maintaining the
  2879.  
  2880. internet.  So it is not clear that there is any true  utility  to
  2881.  
  2882.                              - 50 -
  2883.  
  2884. IEN 187                              Bolt Beranek and Newman Inc.
  2885.                                                     Eric C. Rosen
  2886.  
  2887.  
  2888. having a source routing option at the level of the Network Access
  2889.  
  2890. Protocol,  thereby giving each and every user the option of using
  2891.  
  2892. it.  In an operational environment, this feature should either be
  2893.  
  2894. eliminated, or controlled  through  the  use  of  authorizations,
  2895.  
  2896. which would cause gateways to discard source-routed packets which
  2897.  
  2898. lack proper authorization.
  2899.  
  2900.  
  2901. 2.4.3  Fragmentation and Reassembly
  2902.  
  2903.  
  2904.      One  of  the  few  problems  which  is really specific to an
  2905.  
  2906. internet whose pathways consist of packet-switching  networks  is
  2907.  
  2908. the  fact  that  it is difficult to specify to the user a maximum
  2909.  
  2910. packet size to use when giving traffic to  the  internet.   If  a
  2911.  
  2912. user's  traffic is to go through EVERY component packet-switching
  2913.  
  2914. network, then the maximum packet size he can use is that  of  the
  2915.  
  2916. component  network with the smallest maximum packet size.  Yet it
  2917.  
  2918. seems unwise to require that no  user  ever  exceed  the  maximum
  2919.  
  2920. packet  size  of  the component network with the smallest maximum
  2921.  
  2922. packet size.  To do so might lead  to  very  inefficient  use  of
  2923.  
  2924. other  component networks which permit larger packet sizes.  If a
  2925.  
  2926. particular  user's  traffic  does  not  happen  to  traverse  the
  2927.  
  2928. component  network  with  the  smallest  maximum packet size, the
  2929.  
  2930. restriction really does no good, and only leads to  inefficiency.
  2931.  
  2932. Since,  in  a large internet, most traffic will probably traverse
  2933.  
  2934. only a small subset of the  component  networks,  this  is  quite
  2935.  
  2936. important.   In addition, some Hosts with limited resources might
  2937.  
  2938.  
  2939.                              - 51 -
  2940.  
  2941. IEN 187                              Bolt Beranek and Newman Inc.
  2942.                                                     Eric C. Rosen
  2943.  
  2944.  
  2945. have a high overhead on  a  per-packet  basis,  making  it  quite
  2946.  
  2947. important  to allow them to put larger packets into the internet.
  2948.  
  2949.  
  2950.      This gives rise to the question of, what should an  internet
  2951.  
  2952. Switch  do  if it must route a packet over a certain Pathway, but
  2953.  
  2954. that packet is larger than the maximum size of packets  that  can
  2955.  
  2956. be carried over that Pathway?  The solution that has been adopted
  2957.  
  2958. in  the  current  Catenet  is  to  allow the internet Switches to
  2959.  
  2960. "fragment" the packets  into  several  pieces  whenever  this  is
  2961.  
  2962. necessary in order to send the packet over a Pathway with a small
  2963.  
  2964. maximum packet size.  Each fragment of the original packet is now
  2965.  
  2966. treated  as  an  independent  datagram,  to  be  delivered to the
  2967.  
  2968. destination Host.  It is the responsibility  of  the  destination
  2969.  
  2970. Host  to  reassemble  the  original packet from all the fragments
  2971.  
  2972. before passing it up to the next highest protocol layer.  (If the
  2973.  
  2974. destination happens to have a high per-packet overhead, too bad.)
  2975.  
  2976.  
  2977.      The IP has several features whose only purpose is to  enable
  2978.  
  2979. this  reassembly.   These features are extremely general, so that
  2980.  
  2981. fragments can be further fragmented, ad  infinitum,  and  correct
  2982.  
  2983. reassembly  will  still be possible.  However, it seems that this
  2984.  
  2985. feature has not had very much operational testing in the Catenet;
  2986.  
  2987. gateway  implementers  seem  to  be  as  reluctant  to   actually
  2988.  
  2989. implement  fragmentation  as  Host  implementers are to implement
  2990.  
  2991. reassembly.  If at least one gateway does do fragmentation,  then
  2992.  
  2993. if  some Host does not do reassembly, it cannot, in general, talk
  2994.  
  2995.  
  2996.                              - 52 -
  2997.  
  2998. IEN 187                              Bolt Beranek and Newman Inc.
  2999.                                                     Eric C. Rosen
  3000.  
  3001.  
  3002. to any other Host on the internet.  If a source Host knows that a
  3003.  
  3004. destination Host does not do reassembly, then it can, through IP,
  3005.  
  3006. indicate to  the  gateways  that  they  ought  not  to  fragment.
  3007.  
  3008. However,  in  that  case, any datagrams that are not fragmentable
  3009.  
  3010. but which must be transmitted  over  a  Pathway  with  a  smaller
  3011.  
  3012. maximum packet size are simply lost in transit.
  3013.  
  3014.  
  3015.      It should be noted that the procedure of doing reassembly in
  3016.  
  3017. the  destination  Host violates the precepts of protocol layering
  3018.  
  3019. in a basic way.  The internet  is  not  transparent  to  protocol
  3020.  
  3021. modules in the Hosts, since a datagram put into the internet by a
  3022.  
  3023. protocol   module   in  the  source  Host  might  appear  at  the
  3024.  
  3025. destination Host in quite a different form, viz.,  as  a  set  of
  3026.  
  3027. fragments.   One  might  try to avoid this conclusion by claiming
  3028.  
  3029. that what we have been calling "the Host  software  modules"  are
  3030.  
  3031. really  part  of a Switch, rather than part of a Host, so that no
  3032.  
  3033. transparency is violated.  One could also claim that  a  dog  has
  3034.  
  3035. five legs, by agreeing to call its tail a leg.  But this would no
  3036.  
  3037. more  make a tail a leg than calling a Host software module "part
  3038.  
  3039. of the network" makes it so.   One  of  the  main  advantages  of
  3040.  
  3041. properly  layered  protocols is the ability it provides to change
  3042.  
  3043. the network without having to change the Hosts.  This  is  needed
  3044.  
  3045. if  changes  to  the  network  are even to be possible, since any
  3046.  
  3047. change  that  requires  Host  software  to  change  is,  for  all
  3048.  
  3049. practical  purposes, impossible.  This suggests that the boundary
  3050.  
  3051. of the network  be  drawn  at  the  boundary  where  changes  are
  3052.  
  3053.                              - 53 -
  3054.  
  3055. IEN 187                              Bolt Beranek and Newman Inc.
  3056.                                                     Eric C. Rosen
  3057.  
  3058.  
  3059. possible  without  coordination among an unlimited number of Host
  3060.  
  3061. administrations, and the natural place to draw this  boundary  is
  3062.  
  3063. around  the  Switches.  While the Switches of a Network Structure
  3064.  
  3065. can all be under the control  of  a  common  administration,  the
  3066.  
  3067. Hosts  cannot.   This  suggests  that  any  violation of protocol
  3068.  
  3069. layering that is as gross as the need to have Hosts do reassembly
  3070.  
  3071. is a problem that is to be avoided whenever possible.
  3072.  
  3073.  
  3074.      The problems of writing Host-level software to do reassembly
  3075.  
  3076. in a reliable manner do not seem to have been fully  appreciated.
  3077.  
  3078. If a Host's resources (such as buffer space, queuing slots, table
  3079.  
  3080. areas,  etc.)  are very highly utilized, all sorts of performance
  3081.  
  3082. sub-optimalities   are   possible.    Without   adequate   buffer
  3083.  
  3084. management  (see  IEN 182), even lock-ups are possible.  One must
  3085.  
  3086. remember that reassembly is not a simple matter  of  sending  the
  3087.  
  3088. fragments  to  the  next higher level process in proper sequence.
  3089.  
  3090. The situation is more complex, since  the  first  fragment  of  a
  3091.  
  3092. datagram  cannot  be  sent  up  to the next higher protocol level
  3093.  
  3094. until all the  fragments  of  that  datagram  are  received.   If
  3095.  
  3096. buffers  are  not  pre-allocated  at  the  destination Host, then
  3097.  
  3098. fragments of some datagrams may need to be  discarded  to  ensure
  3099.  
  3100. that  there  is  room  to  hold  all  the fragments of some other
  3101.  
  3102. datagram; otherwise "reassembly  lockup"  is  possible.   If  the
  3103.  
  3104. internet  gateways really did a large amount of fragmentation, so
  3105.  
  3106. that Hosts needed to do a large amount of reassembly, this  would
  3107.  
  3108. almost  certainly  give rise to a variety of peculiar performance
  3109.  
  3110.                              - 54 -
  3111.  
  3112. IEN 187                              Bolt Beranek and Newman Inc.
  3113.                                                     Eric C. Rosen
  3114.  
  3115.  
  3116. problems and  phasing  effects  which  could  make  the  recently
  3117.  
  3118. discovered   "silly   window   syndrome"   look   quite   benign.
  3119.  
  3120. Unfortunately, it is hard to gain an appreciation of these  sorts
  3121.  
  3122. of  problems  until one has personally encountered them, at which
  3123.  
  3124. point it is often too late to do anything about them.
  3125.  
  3126.  
  3127.      Performance   considerations   (as   opposed    simply    to
  3128.  
  3129. considerations  of  functionality)  would  seem  to indicate that
  3130.  
  3131. fragmentation and reassembly be avoided whenever possible.   Note
  3132.  
  3133. that  performance  problems associated with reassembly might crop
  3134.  
  3135. up suddenly at any time in the life of the internet, as some Host
  3136.  
  3137. which rarely received fragments in the past suddenly finds itself
  3138.  
  3139. bombarded with them, possibly due to a  new  application.   Since
  3140.  
  3141. this  sort  of  effect  is  notoriously  difficult to test out in
  3142.  
  3143. advance, one would expect potential problems to be lying in wait.
  3144.  
  3145. Problems like these tend to crop up  at  a  time  when  the  Host
  3146.  
  3147. administration  has  no  one  available  who  understands and can
  3148.  
  3149. modify the Host software, which means that such problems  can  be
  3150.  
  3151. very  intransigent  and difficult to remedy.  Of course, problems
  3152.  
  3153. in Host networking software are usually  blamed  on  the  network
  3154.  
  3155. (i.e.,  on  the  Switches),  which  also  does  not help to speed
  3156.  
  3157. problem resolution.
  3158.  
  3159.  
  3160.      One way to remove this sort of problem from the Host  domain
  3161.  
  3162. is  to  have the destination Switches themselves do any necessary
  3163.  
  3164. reassembly before passing a datagram on to its destination  Host.
  3165.  
  3166.  
  3167.                              - 55 -
  3168.  
  3169. IEN 187                              Bolt Beranek and Newman Inc.
  3170.                                                     Eric C. Rosen
  3171.  
  3172.  
  3173. This  has the advantage that problems which arise will fall under
  3174.  
  3175. the domain of the Network administration, which is more likely to
  3176.  
  3177. be  able  to  deal  with  them  than   are   the   various   Host
  3178.  
  3179. administrations.   However,  this  really  does  not simplify the
  3180.  
  3181. situation, or reduce the amount of  performance  sub-optimalities
  3182.  
  3183. that  we might be faced with; it just takes the same problems and
  3184.  
  3185. puts them somewhere else.  ARPANET IMPs do fragmentation  (though
  3186.  
  3187. only  at  the  source IMP) and reassembly at the destination IMP,
  3188.  
  3189. and this has turned out to be quite a tricky  and  problem-strewn
  3190.  
  3191. mechanism.  Other approaches should be investigated.
  3192.  
  3193.  
  3194.      Of course, one possible way around fragmentation is to adopt
  3195.  
  3196. a  policy  of  not routing any packets over Pathways which cannot
  3197.  
  3198. handle packets of that  size.   If  there  are  several  possible
  3199.  
  3200. routes   between  source  and  destination,  which  have  similar
  3201.  
  3202. characteristics except for the  fact  that  one  of  them  has  a
  3203.  
  3204. maximum  packet size which is too small, the most efficient means
  3205.  
  3206. of handling this problem might just be to avoid using  the  route
  3207.  
  3208. which  would  require fragmentation.  Even if this means taking a
  3209.  
  3210. slightly longer route to the destination, the extra delay imposed
  3211.  
  3212. during internet transit might be more than compensated for by the
  3213.  
  3214. reduction in delay that would be  obtained  by  not  forcing  the
  3215.  
  3216. destination  Host  to  do  reassembly.   Of  course,  this scheme
  3217.  
  3218. requires interaction with routing, but as long  as  there  are  a
  3219.  
  3220. small number of possible maximum packet sizes, this scheme is not
  3221.  
  3222. difficult  to  implement  (at  least,  given a reasonable routing
  3223.  
  3224. algorithm).
  3225.                              - 56 -
  3226.  
  3227. IEN 187                              Bolt Beranek and Newman Inc.
  3228.                                                     Eric C. Rosen
  3229.  
  3230.  
  3231.      Unfortunately, it might be the case that there  just  is  no
  3232.  
  3233. route  at  all to a particular destination, or else no reasonable
  3234.  
  3235. route, which does not utilize a Pathway whose maximum packet size
  3236.  
  3237. is "too  small."   In  this  case,  there  seems  no  way  around
  3238.  
  3239. fragmentation  and  reassembly.  However, a scheme which is worth
  3240.  
  3241. considering  is  that  of  doing  hop-by-hop  fragmentation   and
  3242.  
  3243. reassembly  within  the  internet.   That  is, rather than having
  3244.  
  3245. reassembly done at  the  destination  (Switch  or  Host),  it  is
  3246.  
  3247. possible  to  do reassembly at the Switch which is the exit point
  3248.  
  3249. from a component network which  has  an  unusually  small  packet
  3250.  
  3251. size.  Datagrams would be fragmented upon entry to such networks,
  3252.  
  3253. and reassembled upon exit from them, with no burden on either the
  3254.  
  3255. destination  Switch  or  the  destination  Host.   The  fact that
  3256.  
  3257. fragments would never travel more than one hop without reassembly
  3258.  
  3259. ameliorates the performance problems somewhat, since  the  amount
  3260.  
  3261. of  time  a  partially reassembled datagram might have to be held
  3262.  
  3263. would be less, in general, than if reassembly  were  done  on  an
  3264.  
  3265. end-end basis.
  3266.  
  3267.  
  3268.      A  strategy of doing hop-by-hop reassembly and fragmentation
  3269.  
  3270. also allows more efficient use  of  the  internet's  Pathways  in
  3271.  
  3272. certain  cases.   One  problem  with  the end-end strategy is the
  3273.  
  3274. essential "randomness" of its effects.  Consider, for example,  a
  3275.  
  3276. large  packet  which  must  traverse  several networks with large
  3277.  
  3278. maximum packet sizes, and then one network with a  small  maximum
  3279.  
  3280. packet  size.   The  current  method  of  doing fragmentation and
  3281.  
  3282.                              - 57 -
  3283.  
  3284. IEN 187                              Bolt Beranek and Newman Inc.
  3285.                                                     Eric C. Rosen
  3286.  
  3287.  
  3288. reassembly allows the  packet  to  remain  large  throughout  the
  3289.  
  3290. networks  that can handle it, fragmenting it only when it reaches
  3291.  
  3292. its final hop.  This seems efficient  enough,  but  consider  the
  3293.  
  3294. case  where  the  FIRST  internet  hop  is  the  network with the
  3295.  
  3296. smallest maximum packet size, and the remaining hops are networks
  3297.  
  3298. with large maximum  packet  sizes.   The  current  strategy  then
  3299.  
  3300. causes  a  very inefficient use of the internet, since the packet
  3301.  
  3302. must now travel fragmented through ALL  the  networks,  including
  3303.  
  3304. the  ones  which  would allow the larger packet size.  If some of
  3305.  
  3306. these networks impose constraints on a  per-packet  basis  (which
  3307.  
  3308. might either be flow control constraints, or monetary constraints
  3309.  
  3310. based  on  per-packet  billing),  this  inefficiency  can  have a
  3311.  
  3312. considerable cost.  Hop-by-hop reassembly,  on  the  other  hand,
  3313.  
  3314. would  allow  the  large  packet  to be reassembled and to travel
  3315.  
  3316. through the remaining networks in the most cost-effective manner.
  3317.  
  3318. Such a strategy is most consonant with our general thesis that an
  3319.  
  3320. efficient and reliable internet must contain Switches  which  are
  3321.  
  3322. specifically  tuned  to  the  characteristics  of  the individual
  3323.  
  3324. Pathways.  It also removes the  problem  from  the  Host  domain,
  3325.  
  3326. making  the  system  more consonant with the precepts of protocol
  3327.  
  3328. layering.
  3329.  
  3330.  
  3331.      There is, unfortunately, one situation in  which  hop-by-hop
  3332.  
  3333. fragmentation   cannot   work.    If  the  Pathway  between  some
  3334.  
  3335. destination Host and the destination Switch has a  small  maximum
  3336.  
  3337. packet  size,  so  that  the  destination  Switch  must  fragment
  3338.  
  3339.                              - 58 -
  3340.  
  3341. IEN 187                              Bolt Beranek and Newman Inc.
  3342.                                                     Eric C. Rosen
  3343.  
  3344.  
  3345. datagrams intended for that Host, then reassembly must be done by
  3346.  
  3347. the Host itself, since there is no Switch at the other end of the
  3348.  
  3349. Pathway to do the reassembly.  This  seems  to  mean  that  Hosts
  3350.  
  3351. whose  "home  networks" have unusually small maximum packet sizes
  3352.  
  3353. will be forced to implement the ability  to  perform  reassembly,
  3354.  
  3355. and must tolerate any resultant performance disadvantages.
  3356.  
  3357.  
  3358.  
  3359. 2.5  Flow Control
  3360.  
  3361.  
  3362.      The  topic  of  "flow  control"  or "congestion control" (we
  3363.  
  3364. shall be employing these terms rather  interchangeably,  ignoring
  3365.  
  3366. any  pedantic  distinctions  between  them) breaks down naturally
  3367.  
  3368. into a number  of  sub-topics.   In  this  section  we  shall  be
  3369.  
  3370. concerned  with  only  one such sub-topic, namely, how should the
  3371.  
  3372. Switches  of  the  Network   Structure   enforce   flow   control
  3373.  
  3374. restrictions  on the Hosts?  We shall not consider here the issue
  3375.  
  3376. of how the Switches should do  internal  flow  control,  or  what
  3377.  
  3378. protocols  they  need to run among themselves to disseminate flow
  3379.  
  3380. control information, but only the issue of how the results of any
  3381.  
  3382. internal flow control algorithm should be fed back to the  hosts.
  3383.  
  3384. The  IP  is  a rather unusual Network Access Protocol, in that it
  3385.  
  3386. does not have any flow or congestion  control  features  at  all.
  3387.  
  3388. This  makes  it  very  different  from  most other Network Access
  3389.  
  3390. Protocols, such as 1822 or X.25, which do have ways  of  imposing
  3391.  
  3392. controls  on  the  rate  at  which  users  can  put data into the
  3393.  
  3394. network.  The IP,  on  the  other  hand,  is  supposed  to  be  a
  3395.  
  3396.                              - 59 -
  3397.  
  3398. IEN 187                              Bolt Beranek and Newman Inc.
  3399.                                                     Eric C. Rosen
  3400.  
  3401.  
  3402. "datagram  protocol", and therefore (?) is not supposed to impose
  3403.  
  3404. any flow or congestion control restrictions on the rate at  which
  3405.  
  3406. data  can  be  sent  into the internet.  In this section, we will
  3407.  
  3408. discuss whether this is appropriate, and whether the  "therefore"
  3409.  
  3410. of the previous sentence is really correctly used.
  3411.  
  3412.  
  3413.  
  3414.      The  issue  of  how  flow or congestion control restrictions
  3415.  
  3416. ought to be passed back to a  Host,  or  more  generally,  how  a
  3417.  
  3418. Network   Structure  ought  to  enforce  its  congestion  control
  3419.  
  3420. restrictions, is a tricky  issue.   Particularly  tricky  is  the
  3421.  
  3422. relation  between datagram protocols and flow control.  Datagrams
  3423.  
  3424. are sometimes known (especially with reference to the ARPANET) as
  3425.  
  3426. "uncontrolled packets," which  tends  to  suggest  that  no  flow
  3427.  
  3428. control should be applied to them.  This way of thinking may be a
  3429.  
  3430. holdover  from  the  early days of the ARPANET, when it was quite
  3431.  
  3432. lightly loaded.  In  those  days,  the  flow  control  which  the
  3433.  
  3434. ARPANET  imposes  was  much too strict, holding the throughput of
  3435.  
  3436. particular connections to  an  unreasonably  low  value.   Higher
  3437.  
  3438. throughput  could often be obtained by ignoring the controls, and
  3439.  
  3440. just sending as  much  traffic  as  necessary  for  a  particular
  3441.  
  3442. application.   Since the network was lightly loaded, ignoring the
  3443.  
  3444. controls did not cause much congestion.  Of course, this strategy
  3445.  
  3446. breaks down when applied to the more heavily  loaded  ARPANET  of
  3447.  
  3448. today.    Too   much   uncontrolled   traffic  can  cause  severe
  3449.  
  3450. congestion, which reduces throughput  for  everybody.   Therefore
  3451.  
  3452.  
  3453.                              - 60 -
  3454.  
  3455. IEN 187                              Bolt Beranek and Newman Inc.
  3456.                                                     Eric C. Rosen
  3457.  
  3458.  
  3459. many  people  now  tend  to  recognize  the  need  to control the
  3460.  
  3461. uncontrolled  packets,  if  we  may  be  forgiven  that  apparent
  3462.  
  3463. contradiction.   Clearly,  there  is  some tension here, since it
  3464.  
  3465. makes  little  sense  to  regard  the  same   traffic   as   both
  3466.  
  3467. "controlled" and "uncontrolled."  If a Network Access Protocol is
  3468.  
  3469. developed  on  the  assumption  that  it  should  be  a "datagram
  3470.  
  3471. protocol", and hence need not apply any controls to the  rate  at
  3472.  
  3473. which data can be transferred, it will not be an effective medium
  3474.  
  3475. for   the   enforcement  of  flow  control  restrictions  at  the
  3476.  
  3477. host-network access point.  If  congestion  begins  to  become  a
  3478.  
  3479. problem, so that people gradually begin to realize the importance
  3480.  
  3481. of  congestion  control,  they  will find that the Network Access
  3482.  
  3483. Protocol gives them no way to force the Hosts to  restrict  their
  3484.  
  3485. traffic  when  that  is  necessary.   The probable result of this
  3486.  
  3487. scenario would  be  to  try  to  develop  a  scheme  to  get  the
  3488.  
  3489. congestion  control  information  to  the  Hosts  in  a  way that
  3490.  
  3491. bypasses the Network  Access  Protocol.   This  is  our  "logical
  3492.  
  3493. reconstruction"  of  the  current situation in the Catenet.  When
  3494.  
  3495. gateways think  that  there  is  congestion,  they  send  "source
  3496.  
  3497. quench"  packets  to  the  Hosts  themselves,  and  the Hosts are
  3498.  
  3499. supposed to do something to reduce the congestion.   This  source
  3500.  
  3501. quench  mechanism  should  be recognized for what it is, namely a
  3502.  
  3503. protocol which  is  run  between  EVERY  host  and  EVERY  Switch
  3504.  
  3505. (including  intermediate  Switches,  not  just  source  Switches)
  3506.  
  3507. within a Network Structure, and  which  completely  bypasses  the
  3508.  
  3509.  
  3510.                              - 61 -
  3511.  
  3512. IEN 187                              Bolt Beranek and Newman Inc.
  3513.                                                     Eric C. Rosen
  3514.  
  3515.  
  3516. Network Access Protocol (IP).  This violates protocol layering in
  3517.  
  3518. a  very  basic  way,  since proper layering seems to imply that a
  3519.  
  3520. source Host should have to run a protocol with  a  source  Switch
  3521.  
  3522. only, not with every Switch in the network.
  3523.  
  3524.  
  3525.      Of  course,  the fact that some mechanism appears to violate
  3526.  
  3527. the constraints of protocol layering is not necessarily  a  fatal
  3528.  
  3529. objection  to it.  However, given the present state of the art of
  3530.  
  3531. flow control techniques, which is quite primitive,  flow  control
  3532.  
  3533. procedures  must  be  designed  in  a way that permits them to be
  3534.  
  3535. easily modified, or even completely changed,  as  we  learn  more
  3536.  
  3537. about  flow control.  We must be able to make any sort of changes
  3538.  
  3539. to the internal flow control mechanism  of  a  Network  Structure
  3540.  
  3541. without  any  need  to make changes in Host-level software at the
  3542.  
  3543. same time.   ARPANET  experience  indicates  quite  clearly  that
  3544.  
  3545. changes  which  would  be technically salutary, but which require
  3546.  
  3547. Host software modifications, are virtually  impossible  to  make.
  3548.  
  3549. Host  personnel cannot justify large expenditures of their own to
  3550.  
  3551. make changes for which they perceive no  crucial  need  of  their
  3552.  
  3553. own,  just  because  network  personnel believe the changes would
  3554.  
  3555. result in better network service.  If  we  want  to  be  able  to
  3556.  
  3557. experiment with different internal flow control techniques in the
  3558.  
  3559. internet,  then  we  must  provide  a clean interface between the
  3560.  
  3561. internal flow control  protocols,  and  the  way  in  which  flow
  3562.  
  3563. control  information  is fed back to the Hosts.  We must define a
  3564.  
  3565. relatively simple and straightforward interface by which a source
  3566.  
  3567.                              - 62 -
  3568.  
  3569. IEN 187                              Bolt Beranek and Newman Inc.
  3570.                                                     Eric C. Rosen
  3571.  
  3572.  
  3573. Switch  can  enforce  flow  control  restrictions  on   a   Host,
  3574.  
  3575. independently  of  how  the  source  Switch  determines just what
  3576.  
  3577. restrictions to enforce.  The way in which the Switches determine
  3578.  
  3579. these restrictions can be changed as we  learn  more  about  flow
  3580.  
  3581. control, but the Host interface will remain the same.
  3582.  
  3583.  
  3584.      It  is  not  clear that the source quench mechanism has been
  3585.  
  3586. generally recognized as a new sort of  protocol,  which  bypasses
  3587.  
  3588. the  usual  Network  Access  Protocol for the internet (IP).  One
  3589.  
  3590. reason that it may seem strange to dignify  this  mechanism  with
  3591.  
  3592. the  name of "protocol" is that no one really knows what a source
  3593.  
  3594. quench packet really means, and no one really knows what they are
  3595.  
  3596. supposed to do when they get one.  So generally,  they  are  just
  3597.  
  3598. ignored,  and  the "procedure" of ignoring a control packet seems
  3599.  
  3600. like a very degenerate case of a protocol.  Further,  the  source
  3601.  
  3602. quench  mechanism  is a protocol which Host software implementers
  3603.  
  3604. seem to feel free to violate with impunity.  No implementer could
  3605.  
  3606. decide to ignore the protocols governing the form of addresses in
  3607.  
  3608. the internet, or he would never be able to send or receive  data.
  3609.  
  3610. Yet  there  is  no  penalty  for  ignoring source quench packets,
  3611.  
  3612. although violating the flow  control  part  of  the  internetting
  3613.  
  3614. protocol seems like something that really ought to be prohibited.
  3615.  
  3616. (We have even heard rumors of Host software implementers who have
  3617.  
  3618. decided  to increase their rate of traffic flow into the internet
  3619.  
  3620. upon receiving a source quench packet, on  the  grounds  that  if
  3621.  
  3622. they  are  receiving source quench packets, some of their traffic
  3623.  
  3624.                              - 63 -
  3625.  
  3626. IEN 187                              Bolt Beranek and Newman Inc.
  3627.                                                     Eric C. Rosen
  3628.  
  3629.  
  3630. is not getting through, and therefore they had better  retransmit
  3631.  
  3632. their traffic right away.)
  3633.  
  3634.  
  3635.      We  have  spoken  of  a  source Switch needing to be able to
  3636.  
  3637. ENFORCE flow control restrictions, by which we mean that  when  a
  3638.  
  3639. source  Switch  determines  that  a  certain source Host ought to
  3640.  
  3641. reduce its rate of traffic, the  Switch  will  REFUSE  to  accept
  3642.  
  3643. traffic  at  a  faster  rate.   Proper  flow control can never be
  3644.  
  3645. accomplished if we have to rely either on the good  will  or  the
  3646.  
  3647. good  sense  of  Host software implementers.  (Remember that Host
  3648.  
  3649. software  implementations  will  continue  for  years  after  the
  3650.  
  3651. internet  becomes operational, and future implementers may not be
  3652.  
  3653. as conversant as current implementers  with  networking  issues).
  3654.  
  3655. This  means  a  major  change to the IP concept.  Yet it seems to
  3656.  
  3657. make much more  sense  to  enhance  the  Catenet  Network  Access
  3658.  
  3659. Protocol  to  allow  for  flow  control than to try to bypass the
  3660.  
  3661. Network Access Protocol entirely by sending  control  information
  3662.  
  3663. directly from intermediate Switches to a Host which is only going
  3664.  
  3665. to ignore it.
  3666.  
  3667.  
  3668.      We  will  not discuss internal flow control mechanisms here,
  3669.  
  3670. except to say that we do not believe at  all  in  "choke  packet"
  3671.  
  3672. schemes,  of  which  the  source  quench mechanism is an example.
  3673.  
  3674. Eventually, we will propose an internal congestion control scheme
  3675.  
  3676. for the internet, but it will not look at  all  like  the  source
  3677.  
  3678. quench  mechanism.   (Chapters  5  and  6  of  [2]  contain  some
  3679.  
  3680.  
  3681.                              - 64 -
  3682.  
  3683. IEN 187                              Bolt Beranek and Newman Inc.
  3684.                                                     Eric C. Rosen
  3685.  
  3686.  
  3687. interesting discussions of congestion control in general, and  of
  3688.  
  3689. choke  packet  schemes  in  particular.)   It  appears  that some
  3690.  
  3691. internet workers are now becoming concerned  with  the  issue  of
  3692.  
  3693. what  to do when source quench packets are received, but this way
  3694.  
  3695. of putting the question is somewhat misdirected.   When  you  get
  3696.  
  3697. some  information, and you still don't know what decision to make
  3698.  
  3699. or what action to take, maybe the problem is not so much  in  the
  3700.  
  3701. decision-making  process as it is in the information.  The proper
  3702.  
  3703. question is not, "what should we do when  we  get  source  quench
  3704.  
  3705. packets?",  but  rather  "what  should  we  get instead of source
  3706.  
  3707. quench  packets  that  would  provide  a  clear  and   meaningful
  3708.  
  3709. indication as to what we should do?
  3710.  
  3711.  
  3712.      Does  this  mean  that  the internet Network Access Protocol
  3713.  
  3714. should not really be a datagram protocol?  To some  extent,  this
  3715.  
  3716. is  merely  a  terminological  issue.   There  is no reason why a
  3717.  
  3718. protocol cannot enforce congestion or flow control  without  also
  3719.  
  3720. imposing reliability or sequentiality, or any other features that
  3721.  
  3722. may unnecessarily add delay or reduce throughput.  Whether such a
  3723.  
  3724. protocol  would be called a "datagram protocol" is a matter of no
  3725.  
  3726. import.  It is worth noting,  though,  that  the  Network  Access
  3727.  
  3728. Protocol  of  AUTODIN  II  (SIP),  while  officially  known  as a
  3729.  
  3730. datagram  protocol,  does  impose  and   enforce   flow   control
  3731.  
  3732. restrictions on its hosts.
  3733.  
  3734.  
  3735.  
  3736.  
  3737.  
  3738.                              - 65 -
  3739.  
  3740. IEN 187                              Bolt Beranek and Newman Inc.
  3741.                                                     Eric C. Rosen
  3742.  
  3743.  
  3744.      The  only  real  way for a source Switch to enforce its flow
  3745.  
  3746. control restrictions on a source Host is simply for the Switch to
  3747.  
  3748. REFUSE packets from that Host if the Host is sending too rapidly.
  3749.  
  3750. At its simplest, the Switch could simply drop the  packets,  with
  3751.  
  3752. no  further action.  A somewhat more complex procedure would have
  3753.  
  3754. the Switch inform the Host that a packet had been dropped.  A yet
  3755.  
  3756. more complex procedure would tell the Host  when  to  try  again.
  3757.  
  3758. Even more complex schemes, like the windowing scheme of X.25, are
  3759.  
  3760. also possible.  To make any of these work, however, it seems that
  3761.  
  3762. a  source  Switch  (gateway)  will have to maintain Host-specific
  3763.  
  3764. traffic information, which will inevitably place a limit  on  the
  3765.  
  3766. number   of   Hosts   that  can  be  accessing  a  source  Switch
  3767.  
  3768. simultaneously.  Yet this seems inevitable  if  we  are  to  take
  3769.  
  3770. seriously  the  need for flow control.  At any rate, the need for
  3771.  
  3772. flow control really implies the need for the  existence  of  such
  3773.  
  3774. limits.
  3775.  
  3776.  
  3777.  
  3778. 2.6  Pathway Access Protocol Instrumentation
  3779.  
  3780.  
  3781.      Fault  isolation  in  an  internet  environment  is  a  very
  3782.  
  3783. difficult task, since there are so many components, and  so  many
  3784.  
  3785. ways  for  each  to fail, that a performance problem perceived by
  3786.  
  3787. the user may be caused by any of a thousand different  scenarios.
  3788.  
  3789. Furthermore,  by the time the problem becomes evident at the user
  3790.  
  3791. level, information as to the cause of the  problem  may  be  long
  3792.  
  3793. gone.  Effective fault isolation in the internet environment will
  3794.  
  3795.                              - 66 -
  3796.  
  3797. IEN 187                              Bolt Beranek and Newman Inc.
  3798.                                                     Eric C. Rosen
  3799.  
  3800.  
  3801. require   proper  instrumentation  in  ALL  internet  components,
  3802.  
  3803. including the Hosts.  We will end this paper with a  few  remarks
  3804.  
  3805. about the sort of instrumentation that Hosts should have, to help
  3806.  
  3807. in fault-isolation when there is an apparent network problem.  We
  3808.  
  3809. have  very  often found people blaming the ARPANET for lost data,
  3810.  
  3811. when in fact the problem is entirely within the host itself.  The
  3812.  
  3813. main source of this difficulty is that there often is no way  for
  3814.  
  3815. host  personnel  to  find  out  what is happening within the host
  3816.  
  3817. software.  Sometimes host personnel will attempt  to  deduce  the
  3818.  
  3819. source  of the apparent problem by watching the lights on the IMP
  3820.  
  3821. interface blink, and putting that information together  with  the
  3822.  
  3823. folklore  that  they have heard about the network (which folklore
  3824.  
  3825. is rarely true).  Our ARPANET experience shows quite clearly that
  3826.  
  3827. this sort of fault-isolation procedure just is not useful at all.
  3828.  
  3829. What is really needed is a  much  more  complex,  objective,  and
  3830.  
  3831. SYSTEMATIC  form  of instrumentation, which unfortunately is much
  3832.  
  3833. more difficult to do than simply looking at the blinking  lights.
  3834.  
  3835.  
  3836.      Some  sorts  of essential instrumentation are quite specific
  3837.  
  3838. to the sort of Network Access Protocol or Pathway Access Protocol
  3839.  
  3840. that is being used.  For example,  users  of  the  ARPANET  often
  3841.  
  3842. complain  that  the  IMP  is blocking their host for an excessive
  3843.  
  3844. amount of time.  By itself, this information is not very  useful,
  3845.  
  3846. since  it  is only a symptom which can have any of a large number
  3847.  
  3848. of causes.  In particular, the host itself may be forcing the IMP
  3849.  
  3850. to  block  by  attempting  to  violate   ARPANET   flow   control
  3851.  
  3852.                              - 67 -
  3853.  
  3854. IEN 187                              Bolt Beranek and Newman Inc.
  3855.                                                     Eric C. Rosen
  3856.  
  3857.  
  3858. restrictions.   One sort of instrumentation which would be useful
  3859.  
  3860. for the host to have is a way of keeping track of the total  time
  3861.  
  3862. it is blocked by the IMP, with the blocking time divided into the
  3863.  
  3864. following categories:
  3865.  
  3866.  
  3867.      1) Time blocked between messages.
  3868.  
  3869.  
  3870.      2) Time blocked between the leader of a message and the data
  3871.  
  3872.         of the message.
  3873.  
  3874.  
  3875.      3) Time blocked between packets.
  3876.  
  3877.  
  3878.      4) Time blocked while  attempting  to  send  a  multi-packet
  3879.  
  3880.         message (a subset of 2).
  3881.  
  3882.  
  3883.      5) Time blocked during transmission of the data portion of a
  3884.  
  3885.         packet.
  3886.  
  3887.  
  3888.      6) Time blocked while attempting to transmit a  datagram  (a
  3889.  
  3890.         subset of 2).
  3891.  
  3892.  
  3893.      While  this information might be very non-trivial for a host
  3894.  
  3895. to gather, it does not help us very much in  fixing  the  problem
  3896.  
  3897. just  to  know  that  "the  IMP  is blocking" unless we can get a
  3898.  
  3899. breakdown like this.  In addition, it is  useful  to  have  those
  3900.  
  3901. categories  further  broken down by destination Host, in case the
  3902.  
  3903. blocking is specific to some particular set of hosts.
  3904.  
  3905.  
  3906.  
  3907.  
  3908.  
  3909.                              - 68 -
  3910.  
  3911. IEN 187                              Bolt Beranek and Newman Inc.
  3912.                                                     Eric C. Rosen
  3913.  
  3914.  
  3915.      Additional useful information has to do with the 1822  reply
  3916.  
  3917. messages.  What percentage of transmitted messages are replied to
  3918.  
  3919. with  RFNMs?  with  DEADs? with INCOMPLETEs?  This should also be
  3920.  
  3921. broken down by destination host.  In fact, it would be useful  to
  3922.  
  3923. keep  track  of the number of each possible 1822 IMP-host control
  3924.  
  3925. message that  is  received.   When  problems  arise,  it  may  be
  3926.  
  3927. possible to correlate this information with the problem symptoms.
  3928.  
  3929.  
  3930.      The  basic idea here should be clear -- besides just telling
  3931.  
  3932. us that "the network isn't  taking  packets  fast  enough",  host
  3933.  
  3934. personnel  should  be  able  to tell us under what conditions the
  3935.  
  3936. network is or is not taking packets, and just what "fast  enough"
  3937.  
  3938. means.   If  a host is also running an access protocol other than
  3939.  
  3940. (or in addition to) 1822, there  will  be  specific  measurements
  3941.  
  3942. relevant  to  the operation of that protocol, but in order to say
  3943.  
  3944. just what they are, one must be familiar  with  those  particular
  3945.  
  3946. protocols.   (Again  we  see  the  effects  of particular Pathway
  3947.  
  3948. characteristics, this time on the sort of instrumentation  needed
  3949.  
  3950. for  good  fault  isolation.)   In general, whenever any protocol
  3951.  
  3952. module is designed and implemented, the designer AND  implementer
  3953.  
  3954. (each  of  whom  can  contribute  from  a  different  but equally
  3955.  
  3956. valuable  perspective)  should  try  to  think  of  anything  the
  3957.  
  3958. protocol  or  the  software  module  which implements it might do
  3959.  
  3960. which could hold up traffic  flow  (e.g.,  flow  control  windows
  3961.  
  3962. being  closed,  running  out of sequence number space, failing to
  3963.  
  3964. get timely acknowledgments, process getting swapped  out,  etc.),
  3965.  
  3966.                              - 69 -
  3967.  
  3968. IEN 187                              Bolt Beranek and Newman Inc.
  3969.                                                     Eric C. Rosen
  3970.  
  3971.  
  3972. and should be able to gather statistics (say, average and maximum
  3973.  
  3974. values  of  the amount of time data transfer is being held up for
  3975.  
  3976. each possible cause) which tell us how  the  protocol  module  is
  3977.  
  3978. performing.
  3979.  
  3980.  
  3981.      If  a protocol requires (or allows) retransmissions, rate of
  3982.  
  3983. retransmission is a very useful statistic, especially  if  broken
  3984.  
  3985. down by destination host.
  3986.  
  3987.  
  3988.      Hosts should be able to supply statistics on the utilization
  3989.  
  3990. of  host  resources.   Currently,  for example, many hosts cannot
  3991.  
  3992. even provide any information about their buffer  utilization,  or
  3993.  
  3994. about  the  lengths  of  the  various  queues which a packet must
  3995.  
  3996. traverse when traveling (in either direction)  between  the  host
  3997.  
  3998. and  the  IMP.   Yet  very  high  buffer utilization or very long
  3999.  
  4000. queues within the host may be a source of  performance  problems.
  4001.  
  4002. When a packet has to go through several protocol modules within a
  4003.  
  4004. host  (say, from TELNET to TCP to IP to 1822), the host should be
  4005.  
  4006. able to supply statistics on average and maximum times  it  takes
  4007.  
  4008. for a packet to get through each of these modules.  This can help
  4009.  
  4010. in  the  discovery  of  unexpected  or  unanticipated bottlenecks
  4011.  
  4012. within the host.  (For example, packets may take an  unexpectedly
  4013.  
  4014. long  amount  of time to get through a certain module because the
  4015.  
  4016. module  is  often  swapped  out.   This  is  something  that   is
  4017.  
  4018. especially likely to happen some years after the host software is
  4019.  
  4020. initially  developed, when no one remembers anymore that the host
  4021.  
  4022.  
  4023.                              - 70 -
  4024.  
  4025. IEN 187                              Bolt Beranek and Newman Inc.
  4026.                                                     Eric C. Rosen
  4027.  
  4028.  
  4029. networking software is supposed to have a  high  priority.   This
  4030.  
  4031. sort  of  instrumentation  can be quite tricky to get just right,
  4032.  
  4033. since one must make sure that there is no  period  of  time  that
  4034.  
  4035. slips   between  the  time-stamps).   The  offered  and  obtained
  4036.  
  4037. throughputs  through  each  protocol  module  are   also   useful
  4038.  
  4039. statistics.   In  addition,  if  a host can ever drop packets, it
  4040.  
  4041. should keep  track  of  this.   It  should  be  able  to  provide
  4042.  
  4043. information  as  to  what percentage of packets to (or from) each
  4044.  
  4045. destination host (or source host) were dropped, and  this  should
  4046.  
  4047. be further broken down into categories indicating why the packets
  4048.  
  4049. were  dropped.   (Reasons  for  hosts' dropping packets will vary
  4050.  
  4051. from implementation to implementation).
  4052.  
  4053.  
  4054.      Note that this sort of instrumentation  is  much  harder  to
  4055.  
  4056. implement if we are using datagram protocols than if we are using
  4057.  
  4058. protocols  with  more  control  information, because much of this
  4059.  
  4060. instrumentation is based on sent or received control information.
  4061.  
  4062. The less control information we have, the less we can instrument,
  4063.  
  4064. which  means  that  fault-isolation  and  performance  evaluation
  4065.  
  4066. become  much  harder.  This seems to be a significant, though not
  4067.  
  4068. yet widely-noticed, disadvantage of datagram protocols.
  4069.  
  4070.  
  4071.      Host personnel may want to consider having  some  amount  of
  4072.  
  4073. instrumentation in removable packages, rather than in permanently
  4074.  
  4075. resident  code.   This  ability  may  be essential for efficiency
  4076.  
  4077. reasons if the instrumentation code is either large or slow.   In
  4078.  
  4079.  
  4080.                              - 71 -
  4081.  
  4082. IEN 187                              Bolt Beranek and Newman Inc.
  4083.                                                     Eric C. Rosen
  4084.  
  4085.  
  4086. that  case,  it  might  be  necessary  to  load it in only when a
  4087.  
  4088. problem seems evident.   Instrumentation  should  also  have  the
  4089.  
  4090. ability to be turned on and off, so that it is possible to gather
  4091.  
  4092. data  over  particular  time  windows.   This is necessary if the
  4093.  
  4094. instrumentation is to be used as part of  the  evaluation  of  an
  4095.  
  4096. experiment.
  4097.  
  4098.  
  4099.  
  4100.  
  4101.  
  4102.  
  4103.  
  4104.  
  4105.  
  4106.  
  4107.  
  4108.  
  4109.  
  4110.  
  4111.  
  4112.  
  4113.  
  4114.  
  4115.  
  4116.  
  4117.  
  4118.  
  4119.  
  4120.  
  4121.  
  4122.  
  4123.  
  4124.  
  4125.  
  4126.  
  4127.  
  4128.  
  4129.  
  4130.  
  4131.  
  4132.  
  4133.  
  4134.  
  4135.  
  4136.  
  4137.                              - 72 -
  4138.  
  4139. IEN 187                              Bolt Beranek and Newman Inc.
  4140.                                                     Eric C. Rosen
  4141.  
  4142.  
  4143.                            REFERENCES
  4144.  
  4145. 1. "DOD   Standard  Internet  Protocol,"  COMPUTER  COMMUNICATION
  4146. REVIEW, October 1980, pp. 12-51.
  4147.  
  4148. 2.  "ARPANET Routing  Algorithm  Improvements,"  BBN  Report  No.
  4149. 4473, August 1980.
  4150.  
  4151.  
  4152.  
  4153.  
  4154.  
  4155.  
  4156.  
  4157.  
  4158.  
  4159.  
  4160.  
  4161.  
  4162.  
  4163.  
  4164.  
  4165.  
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.  
  4172.  
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.  
  4181.  
  4182.  
  4183.  
  4184.  
  4185.  
  4186.  
  4187.  
  4188.  
  4189.  
  4190.  
  4191.  
  4192.  
  4193.  
  4194.                              - 73 -
  4195.  
  4196. -------
  4197.